<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.1 (Ruby 3.2.2) -->
<?rfc strict="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-core-sid-22" category="std" consensus="true" submissionType="IETF" tocDepth="4" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.18.1 -->
  <front>
    <title>YANG Schema Item iDentifier (YANG SID)</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-core-sid-22"/>
    <author initials="M. V." surname="Veillette" fullname="Michel Veillette" role="editor">
      <organization>Trilliant Networks Inc.</organization>
      <address>
        <postal>
          <street>610 Rue du Luxembourg</street>
          <city>Granby</city>
          <region>Quebec</region>
          <code>J2J 2V2</code>
          <country>Canada</country>
        </postal>
        <phone>+14503750556</phone>
        <email>michel.veillette@trilliant.com</email>
      </address>
    </author>
    <author initials="A. P." surname="Pelov" fullname="Alexander Pelov" role="editor">
      <organization>Acklio</organization>
      <address>
        <postal>
          <street>1137A avenue des Champs Blancs</street>
          <city>Cesson-Sevigne</city>
          <region>Bretagne</region>
          <code>35510</code>
          <country>France</country>
        </postal>
        <email>a@ackl.io</email>
      </address>
    </author>
    <author initials="I." surname="Petrov" fullname="Ivaylo Petrov" role="editor">
      <organization>Google Switzerland GmbH</organization>
      <address>
        <postal>
          <street>Brandschenkestrasse 110</street>
          <city>Zurich</city>
          <region>Zurich</region>
          <code>8002</code>
          <country>Switzerland</country>
        </postal>
        <email>ivaylopetrov@google.com</email>
      </address>
    </author>
    <author initials="C." surname="Bormann" fullname="Carsten Bormann">
      <organization>Universität Bremen TZI</organization>
      <address>
        <postal>
          <street>Postfach 330440</street>
          <city>D-28359 Bremen</city>
          <country>Germany</country>
        </postal>
        <phone>+49-421-218-63921</phone>
        <email>cabo@tzi.org</email>
      </address>
    </author>
    <author initials="M." surname="Richardson" fullname="Michael Richardson">
      <organization>Sandelman Software Works</organization>
      <address>
        <postal>
          <country>Canada</country>
        </postal>
        <email>mcr+ietf@sandelman.ca</email>
      </address>
    </author>
    <date year="2023" month="October" day="23"/>
    <area>Applications and Real-Time Area (art)</area>
    <workgroup>Internet Engineering Task Force</workgroup>
    <keyword>CBOR</keyword>
    <abstract>
      <?line 123?>

<t>YANG Schema Item iDentifiers (YANG SID) are globally unique 63-bit unsigned integers used to identify YANG items, as a more compact method to identify YANG items that can be used for efficiency and in constrained environments (RFC 7228).
This document defines the semantics, the registration, and assignment processes of YANG SIDs for IETF managed YANG modules.
To enable the implementation of these processes, this document also defines a file format used to persist and publish assigned YANG SIDs.</t>
      <t><cref anchor="status">The present version (–22) addresses some designated expert and
IESG reviews.</cref></t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-core-sid/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Constrained RESTful Environments Working Group mailing list (<eref target="mailto:core@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/core/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/core/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/core-wg/yang-cbor"/>.</t>
    </note>
  </front>
  <middle>
    <?line 137?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Some of the items defined in YANG <xref target="RFC7950"/> require the use of a
unique identifier.
In both Network Configuration Protocol (NETCONF) <xref target="RFC6241"/> and RESTCONF <xref target="RFC8040"/>, these identifiers are implemented using names.
To allow the implementation of data models defined in YANG in constrained devices <xref target="RFC7228"/> and constrained networks, a more compact method to identify YANG items is required.
This compact identifier, called YANG Schema Item iDentifier or YANG SID (or simply SID in this document and when the context is clear), is encoded using a 63-bit unsigned integer.
The limitation to 63-bit unsigned integers allows SIDs to be manipulated more easily on platforms that might otherwise lack 64-bit unsigned arithmetic.
The loss of a single bit of range is not significant given the size of the remaining space.</t>
      <t>The following items are identified using SIDs:</t>
      <ul spacing="normal">
        <li>
          <t>identities</t>
        </li>
        <li>
          <t>data nodes (Note: including those nodes defined by the
'rc:yang-data' <xref target="RFC8040"/> and 'sx:structure' <xref target="RFC8791"/> extensions.)</t>
        </li>
        <li>
          <t>remote procedure calls (RPCs) and associated input(s) and output(s)</t>
        </li>
        <li>
          <t>actions and associated input(s) and output(s)</t>
        </li>
        <li>
          <t>notifications and associated information</t>
        </li>
        <li>
          <t>YANG modules and features</t>
        </li>
      </ul>
      <t>It is possible that some protocols use only a subset of the assigned SIDs, for
example, for protocols equivalent to NETCONF <xref target="RFC6241"/> like <xref target="I-D.ietf-core-comi"/> the
transportation of YANG module SIDs might be unnecessary. Other protocols
might need to be able to transport this information, for example protocols
related to discovery such as Constrained YANG Module Library <xref target="I-D.ietf-core-yang-library"/>.</t>
      <t>SIDs are globally unique integers.  A registration system is used in order to
guarantee their uniqueness. SIDs are registered in blocks called "SID ranges".
Once considered "stable", SIDs are assigned permanently.
Items introduced by a new revision of a YANG
module are added to the list of SIDs already assigned.
This is discussed in more detail in <xref target="objectives"/>.</t>
      <t>Assignment of SIDs to YANG items is usually automated as
discussed in <xref target="sid-auto-generation"/>, which also discusses some cases
where manual interventions may be appropriate.</t>
      <t><xref target="sid-lifecycle"/> provides more details about the registration process of YANG
modules and associated SIDs. To enable the implementation of this registry,
<xref target="sid-file-format"/> defines a standard file format used to store and publish
SIDs.</t>
      <t>IETF managed YANG modules that need to allocate SIDs use the IANA mechanism specified in this document.
YANG modules created by other parties allocate SID ranges using the IANA allocation mechanisms via Mega-Ranges (see <xref target="mega-range-registry"/>); within the Mega-Range allocation, those other parties are free to make up their own mechanism.</t>
      <t>Among other uses, YANG SIDs are particularly useful to obtain a
compact encoding for YANG-CBOR <xref target="RFC9254"/>.
At the time of writing, a tool for automated ".sid" file generation is
available as part of the open-source project PYANG <xref target="PYANG"/>.</t>
      <section anchor="terminology-and-notation">
        <name>Terminology and Notation</name>
        <t>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"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
        <?line -18?>

<t>The following terms are defined in <xref target="RFC7950"/>:</t>
        <ul spacing="normal">
          <li>
            <t>action</t>
          </li>
          <li>
            <t>feature</t>
          </li>
          <li>
            <t>module</t>
          </li>
          <li>
            <t>notification</t>
          </li>
          <li>
            <t>RPC</t>
          </li>
          <li>
            <t>schema node</t>
          </li>
          <li>
            <t>schema tree</t>
          </li>
          <li>
            <t>submodule</t>
          </li>
        </ul>
        <t>This specification also makes use of the following terminology:</t>
        <ul spacing="normal">
          <li>
            <t>item:  A schema node, an identity, a module, or a feature defined using the YANG modeling language.</t>
          </li>
          <li>
            <t>YANG Schema Item iDentifier (YANG SID or simply SID): Unsigned
integer used to identify different YANG items (cf. <xref section="3.2" sectionFormat="of" target="RFC9254"/>).</t>
          </li>
          <li>
            <t>YANG Name: Text string used to identify different YANG items
(cf. <xref section="3.3" sectionFormat="of" target="RFC9254"/>).</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="objectives">
      <name>Objectives</name>
      <t>The overriding objective of the SID assignment and registration system is to
ensure global interoperability of protocols that employ SIDs in order
to communicate about data modeled in YANG.
This objective poses certain requirements on the stability of SIDs
while at the same time not hindering active evolution of the YANG
modules the SIDs are intended to support.</t>
      <t>Additional objectives include:</t>
      <ul spacing="normal">
        <li>
          <t>enabling the developer of a YANG module to also be the originating
entity for the SIDs pertaining to that module.</t>
        </li>
        <li>
          <t>making it easy for YANG developers to obtain SIDs.</t>
        </li>
        <li>
          <t>enabling other developers to define SIDs for a module where the
developer of the module is not interested in assigning the SIDs.</t>
        </li>
        <li>
          <t>keeping an assignment regime that keeps short (2..4 byte) SIDs
readily available for the applications that would benefit from them
while at the same time employing the vast 63-bit SID space to
facilitate permissionless actions.</t>
        </li>
        <li>
          <t>enabling multiple entities to provide services that support the
assignment of SIDs.</t>
        </li>
        <li>
          <t>maintaining some locality in the assignment of SIDs so the
efficiencies of the SID delta mechanism can be fully employed.</t>
        </li>
        <li>
          <t>enabling various software components to deal in terms of SIDs
without having complete information about other parties in the
communication process.</t>
        </li>
      </ul>
      <t>While IANA ultimately maintains the registries that govern SIDs for
IETF-defined modules, various support tools (such as, at the time of
writing, the YANG Catalog <xref target="yangcatalog"/>)
need to provide the support to enable SID assignment and use for
modules still in IETF development.  Developers of open-source or
proprietary YANG modules also need to be able to serve as such
entities autonomously, possibly forming alliances independent of the
IETF, while still fitting in the overall SID number space managed by
IANA.  Obviously, this process has a number of parallels to the
management of IP addresses, but also is very different.</t>
      <section anchor="technical-objectives">
        <name>Technical Objectives</name>
        <t>As discussed in the introduction, SIDs are intended as globally unique
(unsigned) integers.</t>
        <t>Specifically, this means that:</t>
        <dl>
          <dt><strong>Objective 1</strong> (<bcp14>MUST</bcp14>):</dt>
          <dd>
            <t>any 63-bit unsigned integer is either
unassigned as a SID or immutably maps to EXACTLY one YANG name.
Only the transition from unassigned to that immutable mapping is
defined.</t>
          </dd>
        </dl>
        <t>This enables a recipient of a data structure employing SIDs to
translate them into the globally meaningful YANG names that the
existing encodings of YANG data such as YANG-XML <xref target="RFC7950"/> and
YANG-JSON <xref target="RFC7951"/> employ today.</t>
        <t>The term YANG name is not defined outside this document, and YANG has
a complex system of names and entities that can have those names.
Instead of defining the term technically, this set of objectives uses
it in such a way that the overall objectives of YANG-SID can be
achieved.</t>
        <t>A desirable objective is that:</t>
        <dl>
          <dt><strong>Objective 2</strong> (<bcp14>SHOULD</bcp14>):</dt>
          <dd>
            <t>any YANG name in active use has one SID assigned.</t>
          </dd>
        </dl>
        <t>This means that:</t>
        <ol spacing="normal" type="1"><li>
            <t>There should not be YANG names without SIDs assigned</t>
          </li>
          <li>
            <t>YANG names should not have multiple SIDs assigned</t>
          </li>
        </ol>
        <t>These objectives are unattainable in full, because YANG names are not
necessarily born with a SID assignment, and because entirely autonomous
entities might decide to assign SIDs for the same YANG name without
communicating ("like ships in the night").
Note that as long as this autonomy is maintained, any single observer
will have the impression that Objective 2 is attained.
Only when entities that have acted autonomously start communicating, a
deviation is observed.</t>
      </section>
      <section anchor="module-evolution-versioning">
        <name>Module evolution, versioning</name>
        <t>YANG modules evolve (see <xref section="11" sectionFormat="of" target="RFC7950"/>, <xref section="4.27" sectionFormat="of" target="RFC8407"/>).
The technical objectives listed above are states in terms that are
independent of this evolution.</t>
        <t>However, some modules are still in a very fluid state, and the
assignment of permanent SIDs to the YANG names created in them is less
desirable.  This is not only true for new modules, but also for
emerging new revisions of existing stable modules.</t>
        <dl>
          <dt><strong>Objective 3</strong> (<bcp14>MUST</bcp14>):</dt>
          <dd>
            <t>the SID management system is independent from any module versioning.</t>
          </dd>
        </dl>
      </section>
      <section anchor="solution-components-and-derived-objectives">
        <name>Solution Components and Derived Objectives</name>
        <t>A registration system is used in order to guarantee the uniqueness of
SIDs.
To be able to provide some autonomy in allocation (and avoid
information disclosure where it is not desirable), SIDs are registered
in blocks called "SID ranges".</t>
        <t>SIDs are assigned permanently.</t>
        <t>Items introduced by a new revision of a YANG
module are added to the list of SIDs already assigned.</t>
      </section>
      <section anchor="parties-roles">
        <name>Parties and Roles</name>
        <t>In the YANG development process, we can discern a number of parties
that are concerned with a YANG module:</t>
        <dl newline="true">
          <dt>module controller:</dt>
          <dd>
            <t>The owner of the YANG module, i.e., the controller
about its evolution.</t>
          </dd>
          <dt>registration entity:</dt>
          <dd>
            <t>The controller of the module namespace, specifically also of the
prefixes that are in common use.  (This is not a required party.)</t>
          </dd>
          <dt>module repository:</dt>
          <dd>
            <t>An entity that supplies modules to module users.  This can be
"official" (e.g., IANA for IETF modules) or unofficial (e.g., the
YANG Catalog <xref target="yangcatalog"/>).  Not all repositories are in a position to act as
a registry, i.e., as a permanent record for the information they
supply; these repositories need to recur to module owners as a
stable source.</t>
          </dd>
          <dt>module user:</dt>
          <dd>
            <t>An entity that uses a module, after obtaining it from the module
controller or a module repository.</t>
          </dd>
        </dl>
        <t>This set of parties needs to evolve to take on the additional roles
that the SID assignment process requires:</t>
        <dl newline="true">
          <dt>SID assigner:</dt>
          <dd>
            <t>An entity that assigns SIDs for a module.  Objective 2 requires that
there is only one SID assigner for each module.  SID assigners
preferably stay the same over a module development process; however
this specification provides SID files to ensure an organized handover.</t>
          </dd>
          <dt>SID range registries:</dt>
          <dd>
            <t>The entities that supply a SID assigner with SID ranges that they can
use in assigning SIDs for a module.  (In this specification, there
is a structure with mega-ranges and individual SID ranges; this is
not relevant here.)</t>
          </dd>
          <dt>SID repository:</dt>
          <dd>
            <t>An entity that supplies SID assignments to SID users, usually in the
form of a SID file.</t>
          </dd>
          <dt>SID users:</dt>
          <dd>
            <t>The module user that uses the SIDs provided by a SID assigner for a YANG
module.  SID users need to find SID assigners (or at least their SID
assignments).</t>
          </dd>
        </dl>
        <t>During the introduction of SIDs, the distribution of the SID roles to
the existing parties for a YANG module will evolve.</t>
        <t>The desirable end state of this evolution is shown in <xref target="roles-parties"/>.</t>
        <table anchor="roles-parties">
          <name>Roles and Parties: Desired End State</name>
          <thead>
            <tr>
              <th align="left">Role</th>
              <th align="left">Party</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">SID assigner</td>
              <td align="left">module developer</td>
            </tr>
            <tr>
              <td align="left">SID range registry</td>
              <td align="left">(as discussed in this specification)</td>
            </tr>
            <tr>
              <td align="left">SID repository</td>
              <td align="left">module repository</td>
            </tr>
            <tr>
              <td align="left">SID user</td>
              <td align="left">module user (naturally)</td>
            </tr>
          </tbody>
        </table>
        <t>This grouping of roles and parties puts the module developer into a
position where it can achieve the objectives laid out in this section
(a "type-1", "SID-guiding" module controller).
(While a third party might theoretically assign additional SIDs and
conflict with objective 2, there is very little reason to do so if SID
files are always provided by the module developer with the module.)</t>
        <t>The rest of this section is concerned with the transition to this end
state.</t>
        <t>For existing modules, there is no SID file.  The entity that stands in
as the SID assigner is not specified.  This situation has the highest
potential of a conflict with objective 2.</t>
        <t>Similarly, for new module development, the module owner may not have
heard about SIDs or not be interested in assigning them (e.g., because
of lack of software or procedures within their organization).</t>
        <t>For these two cases (which we will call type-3, "SID-oblivious" module
controller), module repositories can act as a mediator, giving SID
users access to a SID assigner that is carefully chosen to be a likely
choice by other module repositories as well, maximizing the likelihood
of achieving objective 2.</t>
        <t>If the module controller has heard about SIDs, but is not assigning
them yet, it can designate a SID assigner instead.  This can lead to a
stable, unique set of SID assignments being provided indirectly by a
(type-2, "SID-aware") module developer.  Entities offering designated
SID assigner services could make these available in an easy-to-use
way, e.g., via a Web interface.</t>
        <t>The entity acting as a SID assigner minimally needs to record the SID
range it uses for the SID assignment.  If the SID range registry can
record the module name and revision, and the assignment processes
(including the software used) are stable, the SID assigner can
theoretically reconstruct its assignments, but this is an invitation
for implementation bugs.</t>
        <t>SID assigners attending to a module in development (not yet stable)
need to decide whether SIDs for a new revision are re-assigned from
scratch ("clean-slate") or use existing assignments from a previous
revision as a base, only assigning new SIDs for new names.
Once a module is declared stable, its SID assignments <bcp14>SHOULD</bcp14> be
declared stable as well (the exception being that, for existing YANG
modules, some review may be needed before this is done).</t>
        <t>This specification does not further discuss how mediating entities
such as designated SID assigners or SID repositories could operate;
instead, it supplies objectives for their operation.</t>
      </section>
    </section>
    <section anchor="sid-lifecycle">
      <name>".sid" file lifecycle</name>
      <t>YANG is a language designed to model data accessed using one of the compatible
protocols (e.g. NETCONF <xref target="RFC6241"/>, RESTCONF <xref target="RFC8040"/> and CORECONF <xref target="I-D.ietf-core-comi"/>). A
YANG module defines hierarchies of data, including configuration, state data,
RPCs, actions and notifications.</t>
      <t>Many YANG modules are not created in the context of constrained
applications. YANG modules can be implemented using NETCONF <xref target="RFC6241"/> or
RESTCONF <xref target="RFC8040"/> without the need to assign SIDs.</t>
      <t>As needed, authors of YANG modules can assign SIDs to their YANG modules. In
order to do that, they should first obtain a SID range from a registry and use
that range to assign or generate SIDs to items of their YANG module. The
assignments can then be stored in a ".sid" file. For
example on how this could be achieved, please refer to <xref target="sid-lifecycle-ex"/>.</t>
      <t>Items introduced by a new revision of a YANG module are added to the list of SIDs already assigned.
When this is done during development of a new protocol document, it may be necessary to make provisional assignments.
They may get changed, revised or withdrawn during the development of a new standard.
These provisional assignments are marked with a status of "unstable",
so that they can be removed and the SID number possibly be reassigned
for a different YANG schema name/path later during development.
When the specification is advanced to a final document, then
the assignment is marked with a status of "stable".
During a period of development starting from a published
specification, two variants of the SID file should
be made available by the tooling involved in that development: (1) a
"published" SID file with the existing stable SID assignments only
(which the development effort should keep stable), as
well as (2) an "unpublished" SID file that also contains the unstable
SID assignments.</t>
      <t>Registration of the ".sid" file associated to a YANG module is optional but
recommended  <!-- sic. --> to promote interoperability between devices and to avoid duplicate
allocation of SIDs to a single YANG module. Different registries might have
different requirements for the registration and publication of the ".sid"
files. For a diagram of one of the possibilities, please refer to the activity
diagram on <xref target="fig-sid-file-creation"/> in <xref target="sid-lifecycle-ex"/>.</t>
      <t>Each time a YANG module or one of its imported module(s) or included
sub-module(s) is updated, a new ".sid" file <bcp14>MAY</bcp14> be created if the new or
updated items will need SIDs. All the SIDs present in the previous version of
the ".sid" file <bcp14>MUST</bcp14> be present in the new version as well. The creation of
this new version of the ".sid" file <bcp14>SHOULD</bcp14> be performed using an automated
tool.</t>
      <t>If a new revision requires more SIDs than initially allocated, a new SID range
<bcp14>MUST</bcp14> be added to the 'assignment-range' as defined in <xref target="sid-file-format"/>.
These extra SIDs are used for subsequent assignments.</t>
      <t>For an example of this update process, see activity diagram
<xref target="fig-sid-file-update"/> in <xref target="sid-lifecycle-ex"/>.</t>
    </section>
    <section anchor="sid-file-format">
      <name>".sid" file format</name>
      <t>".sid" files are used to persist and publish SIDs assigned to the different
YANG items of a specific YANG module.</t>
      <t>It has the following structure:</t>
      <figure>
        <name>YANG tree for ietf-sid-file</name>
        <sourcecode type="yangtree"><![CDATA[
module: ietf-sid-file

  structure sid-file:
    +-- module-name            yang:yang-identifier
    +-- module-revision?       revision-identifier
    +-- sid-file-version?      sid-file-version-identifier
    +-- sid-file-status?       enumeration
    +-- description?           string
    +-- dependency-revision* [module-name]
    |  +-- module-name        yang:yang-identifier
    |  +-- module-revision    revision-identifier
    +-- assignment-range* [entry-point]
    |  +-- entry-point    sid
    |  +-- size           uint64
    +-- item* [namespace identifier]
       +-- status?       enumeration
       +-- namespace     enumeration
       +-- identifier    union
       +-- sid           sid
]]></sourcecode>
      </figure>
      <t>The following YANG module defines the structure of this file, encoding is
performed in JSON <xref target="RFC8259"/> using the rules defined in <xref target="RFC7951"/>.
It references ietf-yang-types defined in <xref target="RFC6991"/> and ietf-yang-structure-ext defined in <xref target="RFC8791"/>.</t>
      <t>RFC Ed.: please update the date of the module and Copyright if needed and remove this note.</t>
      <figure>
        <name>YANG module ietf-sid-file</name>
        <sourcecode type="yang" markers="true" name="ietf-sid-file@2023-10-23.yang"><![CDATA[
module ietf-sid-file {
  yang-version 1.1;
  namespace "urn:ietf:params:xml:ns:yang:ietf-sid-file";
  prefix sid;

  import ietf-yang-types {
    prefix yang;
    reference "RFC 6991: Common YANG Data Types.";
  }
  import ietf-yang-structure-ext {
    prefix sx;
    reference "RFC 8791: YANG Data Structure Extensions.";
  }

  organization
    "IETF Core Working Group";

  contact
    "WG Web:   <https://datatracker.ietf.org/wg/core/>

     WG List:  <mailto:core@ietf.org>

     Editor:   Michel Veillette
               <mailto:michel.veillette@trilliant.com>

     Editor:   Andy Bierman
               <mailto:andy@yumaworks.com>

     Editor:   Alexander Pelov
               <mailto:a@ackl.io>

     Editor:   Ivaylo Petrov
               <mailto:ivaylopetrov@google.com>";

  description
    "Copyright (c) 2023 IETF Trust and the persons identified as
     authors of the code.  All rights reserved.

     Redistribution and use in source and binary forms, with or
     without modification, is permitted pursuant to, and subject to
     the license terms contained in, the Simplified BSD License set
     forth in Section 4.c of the IETF Trust's Legal Provisions
     Relating to IETF Documents
     (https://trustee.ietf.org/license-info).

     This version of this YANG module is part of RFC XXXX
     (https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself
     for full legal notices.

     The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL
     NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED',
     'MAY', and 'OPTIONAL' in this document are to be interpreted as
     described in BCP 14 (RFC 2119) (RFC 8174) when, and only when,
     they appear in all capitals, as shown here.

     This module defines the structure of the .sid files.

     Each .sid file contains the mapping between each
     string identifier defined by a YANG module and a
     corresponding numeric value called YANG SID.";

  revision 2023-10-23 {
    description
      "Initial revision.";
    reference
      "[RFC XXXX] YANG Schema Item iDentifier (YANG SID)";
  }

  typedef revision-identifier {
    type string {
      pattern '[0-9]{4}-[0-9]{2}-[0-9]{2}';
    }
    description
      "Represents a date in YYYY-MM-DD format.";
  }

  typedef sid-file-version-identifier {
    type uint32;
    description
      "Represents the version of a .sid file.";
  }

  typedef sid {
    type uint64 {
      range "0..9223372036854775807";
    }
    description
      "YANG Schema Item iDentifier";
    reference
      "[RFC XXXX] YANG Schema Item iDentifier (YANG SID)";
  }

  typedef schema-node-path {
    type string {
      pattern
        '/[a-zA-Z_][a-zA-Z0-9\-_.]*:[a-zA-Z_][a-zA-Z0-9\-_.]*' +
        '(/[a-zA-Z_][a-zA-Z0-9\-_.]*(:[a-zA-Z_][a-zA-Z0-9\-_.]*)?)*';
    }
    description
      "A schema-node path is an absolute YANG schema node identifier
      as defined by the YANG ABNF rule absolute-schema-nodeid,
      except that module names are used instead of prefixes.

      This string additionally follows the following rules:

       o  The leftmost (top-level) data node name is always in the
          namespace-qualified form.
       o  Any subsequent schema node name is in the
          namespace-qualified form if the node is defined in a module
          other than its parent node, and the simple form is used
          otherwise. No predicates are allowed.";
    reference
      "RFC 7950, The YANG 1.1 Data Modeling Language;
       Section 6.5: Schema Node Identifier;";
  }

  sx:structure sid-file {
      uses sid-file-contents;
  }

  grouping sid-file {
    description "A grouping that contains a YANG container
      representing the file structure of a .sid files.";

    container sid-file {
      description
        "A wrapper container that together with the sx:structure
        extension marks the YANG data structures inside as not being
        intended to be implemented as part of a configuration
        datastore or as an operational state within the server.";
      uses sid-file-contents;
    }
  }

  grouping sid-file-contents {
    description
      "A grouping that defines the contents of a container that
       represents the file structure of a .sid files.";

    leaf module-name {
      type yang:yang-identifier;
      mandatory true;
      description
        "Name of the YANG module associated with this .sid file.";
    }

    leaf module-revision {
      type revision-identifier;
      description
        "Revision of the YANG module associated with this .sid
        file.
        This leaf is not present if no revision statement is
        defined in the YANG module.";
    }

    leaf sid-file-version {
      type sid-file-version-identifier;
      default 0;
      description
        "Optional leaf that specifies the version number of the
        .sid file.  .sid files and the version sequence are
        specific to a given YANG module revision. This number
        starts at zero when there is a new YANG module revision and
        increases monotonically.  This number can distinguish
        updates to the .sid file which are the result of new
        processing, or the result of reported errata.";
    }

    leaf sid-file-status {
      type enumeration {
         enum unpublished {
           description
             "This .sid file is unpublished [RFC8407], also called
              a work-in-progress or workfile.
              This may be when it accompanies an unpublished YANG
              module, or when only the .sid file itself is
              unpublished.
              The 'item' list MAY contain entries with a status
              value of 'unstable'.";
         }
         enum published {
           description
             "This .sid file is published, for a published YANG
              module. The 'item' list MUST NOT contain entries with
              a status value of 'unstable'.";
         }
      }
      default published;
      description
        "Optional leaf that specifies the status of the
        .sid file.";
    }

    leaf description {
      type string;
      description
        "Free-form meta information about the generated file. It
        might include .sid file generation tool and time among
        other things.";
    }

    list dependency-revision {
      key "module-name";

      description
        "Information about the revision used during the .sid file
        generation of each YANG module that the module in
        'module-name' imported.";

      leaf module-name {
        type yang:yang-identifier;
        description
          "Name of the YANG module, dependency of 'module-name',
          for which revision information is provided.";
      }
      leaf module-revision {
        type revision-identifier;
        mandatory true;
        description
          "Revision of the YANG module, dependency of
          'module-name', for which revision information is
          provided.";
      }
    }

    list assignment-range {
      key "entry-point";
      description
        "YANG SID range(s) allocated to the YANG module identified
        by 'module-name' and 'module-revision'.

        - The YANG SID range first available value is entry-point
          and the last available value in the range is
          (entry-point + size - 1).
        - The YANG SID ranges specified by all assignment-ranges
          MUST NOT overlap.";

      leaf entry-point {
        type sid;
        description
          "Lowest YANG SID available for assignment.";
      }

      leaf size {
        type uint64;
        mandatory true;
        description
          "Number of YANG SIDs available for assignment.";
      }
    }

    list item {
      key "namespace identifier";
      unique "sid";

      description
        "Each entry within this list defines the mapping between
        a YANG item string identifier and a YANG SID. This list
        MUST include a mapping entry for each YANG item defined by
        the YANG module identified by 'module-name' and
        'module-revision'.";

      leaf status {
        type enumeration {
          enum stable {
            value 0;
            description "This SID allocation has been published as
                         the stable allocation for the given
                         namespace and identifier.";
          }
          enum unstable {
            value 1;
            description "This SID allocation has been done during a
                         development process; it is not yet stable.";
          }
          enum obsolete {
            value 2;
            description "This SID allocation is no longer in use.
                         It is recorded to avoid reallocation of
                         its SID value.";
          }
        }
        default stable;
        description
          "The status field contains information about the stability
           of the allocation.  For each specific SID value, over time
           it can only transition from unstable to stable,
           and possibly from stable to obsolete.";
      }

      leaf namespace {
        type enumeration {
          enum module {
            value 0;
            description
              "All module and submodule names share the same
              global module identifier namespace.";
          }
          enum identity {
            value 1;
            description
              "All identity names defined in a module and its
              submodules share the same identity identifier
              namespace.";
          }
          enum feature {
            value 2;
            description
              "All feature names defined in a module and its
              submodules share the same feature identifier
              namespace.";
          }
          enum data {
            value 3;
            description
              "The namespace for all data nodes, as defined in
              YANG.";
          }
        }
        description
          "Namespace of the YANG item for this mapping entry.";
      }

      leaf identifier {
        type union {
          type yang:yang-identifier;
          type schema-node-path;
        }
        description
          "String identifier of the YANG item for this mapping
          entry.

          If the corresponding 'namespace' field is 'module',
          'feature', or 'identity', then this field MUST
          contain a valid YANG identifier string.

          If the corresponding 'namespace' field is 'data',
          then this field MUST contain a valid schema-node
          path.";
      }

      leaf sid {
        type sid;
        mandatory true;
        description
          "YANG SID assigned to the YANG item for this mapping
          entry.";
      }
    }
  }
}
]]></sourcecode>
      </figure>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>This document defines a new type of identifier used to encode data that are modeled in YANG <xref target="RFC7950"/>.
This new identifier maps semantic concepts to integers, and if the
source of this mapping is not trusted, then new security risks might
occur if an attacker can control the mapping.</t>
      <t>At the time of writing, it is expected that the SID files will be
processed by a software developer, within a software development
environment.  Developers are advised to only import SID files from
authoritative sources.  IANA is the authoritative source for IETF
managed YANG modules.</t>
      <t>Conceptually, SID files could be processed by less-constrained target
systems such as network management systems.  Such systems need to take
extra care to make sure that they are only processing SID files from
authoritative sources, as authoritative as the YANG modules that they
are using.</t>
      <t>The privacy considerations in <xref section="6" sectionFormat="of" target="I-D.bormann-t2trg-deref-id"/> apply.</t>
    </section>
    <section anchor="IANA">
      <name>IANA Considerations</name>
      <section anchor="yang-namespace-registration">
        <name>YANG Namespace Registration</name>
        <t>This document registers the following XML namespace URN in the "IETF XML
Registry", following the format defined in <xref target="RFC3688"/>:</t>
        <t>URI: please assign urn:ietf:params:xml:ns:yang:ietf-sid-file</t>
        <t>Registrant Contact: The IESG.</t>
        <t>XML: N/A, the requested URI is an XML namespace.</t>
        <t>Reference:    RFC XXXX</t>
        <t>// RFC Ed.: please replace XXXX with RFC number and remove this note</t>
      </section>
      <section anchor="iana-module-registration">
        <name>Register ".sid" File Format Module</name>
        <t>This document registers one YANG module in the "YANG Module Names" registry <xref target="RFC6020"/>:</t>
        <ul spacing="normal">
          <li>
            <t>name:         ietf-sid-file</t>
          </li>
          <li>
            <t>namespace:    urn:ietf:params:xml:ns:yang:ietf-sid-file</t>
          </li>
          <li>
            <t>prefix:       sid</t>
          </li>
          <li>
            <t>reference:    RFC XXXX</t>
          </li>
        </ul>
        <t>// RFC Ed.: please replace XXXX with RFC number and remove this note</t>
      </section>
      <section anchor="mega-range-registry">
        <name>Create new IANA Registry: "YANG SID Mega-Range" registry</name>
        <t>The name of this registry is "YANG SID Mega-Range". This registry is used to record the delegation of the management of a block of SIDs to third parties (such as SDOs or registrars).</t>
        <section anchor="structure">
          <name>Structure</name>
          <t>Each entry in this registry must include:</t>
          <ul spacing="normal">
            <li>
              <t>The entry point (first SID) of the registered SID block.</t>
            </li>
            <li>
              <t>The size of the registered SID block.
The size <bcp14>SHOULD</bcp14> be one million (1 000 000) SIDs,
it <bcp14>MAY</bcp14> exceptionally be a multiple of 1 000 000.</t>
            </li>
            <li>
              <t>The contact information of the requesting organization including:
              </t>
              <ul spacing="normal">
                <li>
                  <t>The policy of SID range allocations: Public, Private or Both.</t>
                </li>
                <li>
                  <t>Organization name</t>
                </li>
                <li>
                  <t>URL</t>
                </li>
              </ul>
            </li>
          </ul>
        </section>
        <section anchor="allocation-policy">
          <name>Allocation policy</name>
          <t>The IANA policy for future additions to this registry is "Expert Review" <xref target="RFC8126"/>.</t>
          <t>An organization requesting to manage a YANG SID Range (and thus have an entry in the YANG SID Mega-Range Registry), must ensure the following capacities:</t>
          <ul spacing="normal">
            <li>
              <t>The capacity to manage and operate a YANG SID Range Registry. A YANG SID Range Registry <bcp14>MUST</bcp14> provide the following information for all YANG SID Ranges allocated by the Registry:
              </t>
              <ul spacing="normal">
                <li>
                  <t>Entry Point of allocated YANG SID Range</t>
                </li>
                <li>
                  <t>Size of allocated YANG SID Range</t>
                </li>
                <li>
                  <t>Type: Public or Private
                  </t>
                  <ul spacing="normal">
                    <li>
                      <t>Public Ranges <bcp14>MUST</bcp14> include at least a reference to the YANG module and ".sid" files for that YANG SID Range (e.g., compare <xref target="publink"/> for the IETF YANG SID registry).</t>
                    </li>
                    <li>
                      <t>Private Ranges <bcp14>MUST</bcp14> be marked as "Private"</t>
                    </li>
                  </ul>
                </li>
              </ul>
            </li>
            <li>
              <t>A Policy of allocation, which clearly identifies if the YANG SID Range allocations would be Private, Public or Both.</t>
            </li>
            <li>
              <t>Technical capacity to ensure the sustained operation of the registry for a period of at least 5 years. If Private Registrations are allowed, the period must be of at least 10 years.</t>
            </li>
          </ul>
          <t>If a size of the allocation beyond 1 000 000 is desired, the
organization must demonstrate the sustainability of the technical
approach for utilizing this size of allocation and how it does not
negatively impact the overall usability of the SID allocation
mechanisms; such allocations are preferably placed in the space above
4 295 000 000 (64-bit space).</t>
          <section anchor="first-allocation">
            <name>First allocation</name>
            <t>For a first allocation to be provided, the requesting organization must demonstrate a functional registry infrastructure.</t>
          </section>
          <section anchor="consecutive-allocations">
            <name>Consecutive allocations</name>
            <t>On subsequent allocation request(s), the organization must demonstrate the
exhaustion of the prior range. These conditions need to be asserted by the
assigned expert(s).</t>
            <t>If that extra-allocation is done within 3 years from the last allocation, the
experts need to discuss this request on the CORE working group mailing list and
consensus needs to be obtained before allocating a new Mega-Range.</t>
          </section>
        </section>
        <section anchor="initial-contents-of-the-registry">
          <name>Initial contents of the Registry</name>
          <t>The initial entry in this registry is allocated to IANA:</t>
          <table align="left">
            <thead>
              <tr>
                <th align="left">Entry Point</th>
                <th align="left">Size</th>
                <th align="left">Allocation</th>
                <th align="left">Organization name</th>
                <th align="left">URL</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">0</td>
                <td align="left">1000000</td>
                <td align="left">Public</td>
                <td align="left">IANA</td>
                <td align="left">iana.org</td>
              </tr>
            </tbody>
          </table>
        </section>
      </section>
      <section anchor="ietf-iana-sid-range-allocation">
        <name>Create a new IANA Registry: IETF YANG SID Range Registry (managed by IANA)</name>
        <section anchor="ietf-iana-sid-range-structure">
          <name>Structure</name>
          <t>Each entry in this registry must include:</t>
          <ul spacing="normal">
            <li>
              <t>The SID range entry point.</t>
            </li>
            <li>
              <t>The SID range size.</t>
            </li>
            <li>
              <t>The YANG module name.</t>
            </li>
            <li>
              <t>Document reference.</t>
            </li>
          </ul>
        </section>
        <section anchor="ietf-iana-sid-range-allocation-policy">
          <name>Allocation policy</name>
          <t>The first million SIDs assigned to IANA is sub-divided as follows:</t>
          <ul spacing="normal">
            <li>
              <t>The range of 0 to 999 (size 1000) is subject to "IESG Approval" as defined in <xref target="RFC8126"/>; of these, SID value 0 has been reserved for implementations to internally signify the absence of a SID number and does not occur in interchange.</t>
            </li>
            <li>
              <t>The range of 1000 to 59,999 (size 59,000) is designated for YANG modules defined in RFCs.
              </t>
              <ul spacing="normal">
                <li>
                  <t>The IANA policy for additions to this registry is either:
                  </t>
                  <ul spacing="normal">
                    <li>
                      <t>"Expert Review" <xref target="RFC8126"/> in case the ".sid" file comes from a YANG module from an existing RFC, or</t>
                    </li>
                    <li>
                      <t>"RFC Required" <xref target="RFC8126"/> otherwise.</t>
                    </li>
                  </ul>
                </li>
                <li>
                  <t>The Expert <bcp14>MUST</bcp14> verify that the YANG module for which this allocation is made has an RFC (existing RFC) OR is on track to become RFC (early allocation with a request from the WG chairs as defined by <xref target="BCP100"/>).</t>
                </li>
              </ul>
            </li>
            <li>
              <t>The range of 60,000 to 99,999 (size 40,000) is reserved for experimental YANG modules. This range <bcp14>MUST NOT</bcp14> be used in operational deployments since these SIDs are not globally unique which limit their interoperability. The IANA policy for this range is "Experimental use" <xref target="RFC8126"/>.</t>
            </li>
            <li>
              <t>The range of 100,000 to 999,999 (size 900,000) is "Reserved" as defined in <xref target="RFC8126"/>.</t>
            </li>
          </ul>
          <table align="left">
            <thead>
              <tr>
                <th align="left">Entry Point</th>
                <th align="left">Size</th>
                <th align="left">IANA policy</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">0</td>
                <td align="left">1,000</td>
                <td align="left">IESG Approval</td>
              </tr>
              <tr>
                <td align="left">1,000</td>
                <td align="left">59,000</td>
                <td align="left">RFC Required</td>
              </tr>
              <tr>
                <td align="left">60,000</td>
                <td align="left">40,000</td>
                <td align="left">Experimental/Private use</td>
              </tr>
              <tr>
                <td align="left">100,000</td>
                <td align="left">900,000</td>
                <td align="left">Reserved</td>
              </tr>
            </tbody>
          </table>
          <t>The size of the SID range allocated for a YANG module is recommended to be a multiple of 50 and to be at least 33% above the current number of YANG items. This headroom allows assignment within the same range of new YANG items introduced by subsequent revisions. The SID range size <bcp14>SHOULD NOT</bcp14> exceed 1000; a larger size may be requested by the authors if this recommendation is considered insufficient. It is important to note that an additional SID range can be allocated to an existing YANG module if the initial range is exhausted; this then just leads to slightly less efficient representation.</t>
          <t>In case a SID range is allocated for an existing RFC through the "Expert
Review" policy, the Document reference field for the given allocation should
point to the RFC that the YANG module is defined in.</t>
          <t>In case a SID range is required before publishing the RFC due to
implementations needing stable SID values, early allocation as defined in
<xref target="BCP100"/> can be employed for the "RFC Required" range (Section 2 of
<xref target="BCP100"/>). <!-- XXX xml2rfc bug-->
          </t>
        </section>
        <section anchor="publink">
          <name>Publication of the ".sid" file</name>
          <t>During publication of an RFC, IANA contacts the designated expert team
("the team"), who are responsible for delivering a final SID file for
each module defined by the RFC.
For a type-3 developer (<xref target="parties-roles"/>), the team
creates a new SID file from each YANG module, see below.
For a type-2 developer, the team first obtains the existing draft SID
file from a stable reference in the approved draft; for a type-1
developer, the team extracts the SID file from the approved draft.</t>
          <t>The team uses a tool to generate a final SID file from each YANG
module; the final SID file has all SID assignments set to "stable" and
the SID file status set to "published".
A published ".sid" file <bcp14>MUST NOT</bcp14> contain SID assignments with an
unstable status.</t>
          <t>For the cases other than type-3, the team feeds the existing draft SID
file as an input to the tool so that the changes resulting from
re-generation are minimal.
In any case, the team checks the generated file, including for
validity as a SID file, for consistency with the SID range
allocations, for full coverage of the YANG items in YANG module, and
for the best achievable consistency with the existing draft SID file.</t>
          <t>The designated experts then give the SID file to IANA to publish into
the YANG SID Registry (<xref target="ietf-sid-registry"/>) along with the YANG
module.</t>
          <t>The ".sid" file <bcp14>MUST NOT</bcp14> be published as part of the RFC: the IANA
Registry is authoritative and a link to it is to be inserted in the RFC.
(Note that the present RFC is an exception to this rule as the SID
file also serves as an example for exposition.)
RFCs that need SIDs assigned to their new modules for use in the text
of the document, e.g., for examples, need to alert the RFC editor in
the draft text that this is the case.
Such RFCs cannot be produced by type-3 developers:
the SIDs used in the text need to be assigned in the existing draft
SID file, and the designated expert team needs to check that the
assignments in the final SID file are consistent with the usage in the
RFC text or that the approved draft test is changed appropriately.</t>
        </section>
        <section anchor="ietf-iana-sid-range-initial-contents">
          <name>Initial contents of the registry</name>
          <t>Initial entries in this registry are as follows:</t>
          <table align="left">
            <thead>
              <tr>
                <th align="right">Entry Point</th>
                <th align="right">Size</th>
                <th align="left">Module name</th>
                <th align="left">Document reference</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="right">0</td>
                <td align="right">1</td>
                <td align="left">(Reserved: not a valid SID)</td>
                <td align="left">RFCXXXX</td>
              </tr>
              <tr>
                <td align="right">1000</td>
                <td align="right">100</td>
                <td align="left">ietf-coreconf</td>
                <td align="left">
                  <xref target="I-D.ietf-core-comi"/></td>
              </tr>
              <tr>
                <td align="right">1100</td>
                <td align="right">50</td>
                <td align="left">ietf-yang-types</td>
                <td align="left">
                  <xref target="RFC6991"/></td>
              </tr>
              <tr>
                <td align="right">1150</td>
                <td align="right">50</td>
                <td align="left">ietf-inet-types</td>
                <td align="left">
                  <xref target="RFC6991"/></td>
              </tr>
              <tr>
                <td align="right">1200</td>
                <td align="right">50</td>
                <td align="left">iana-crypt-hash</td>
                <td align="left">
                  <xref target="RFC7317"/></td>
              </tr>
              <tr>
                <td align="right">1250</td>
                <td align="right">50</td>
                <td align="left">ietf-netconf-acm</td>
                <td align="left">
                  <xref target="RFC8341"/></td>
              </tr>
              <tr>
                <td align="right">1300</td>
                <td align="right">50</td>
                <td align="left">ietf-sid-file</td>
                <td align="left">RFCXXXX</td>
              </tr>
              <tr>
                <td align="right">1500</td>
                <td align="right">100</td>
                <td align="left">ietf-interfaces</td>
                <td align="left">
                  <xref target="RFC8343"/></td>
              </tr>
              <tr>
                <td align="right">1600</td>
                <td align="right">100</td>
                <td align="left">ietf-ip</td>
                <td align="left">
                  <xref target="RFC8344"/></td>
              </tr>
              <tr>
                <td align="right">1700</td>
                <td align="right">100</td>
                <td align="left">ietf-system</td>
                <td align="left">
                  <xref target="RFC7317"/></td>
              </tr>
              <tr>
                <td align="right">1800</td>
                <td align="right">400</td>
                <td align="left">iana-if-type</td>
                <td align="left">
                  <xref target="RFC7224"/></td>
              </tr>
              <tr>
                <td align="right">2400</td>
                <td align="right">50</td>
                <td align="left">ietf-voucher</td>
                <td align="left">
                  <xref target="RFC8366"/></td>
              </tr>
              <tr>
                <td align="right">2450</td>
                <td align="right">50</td>
                <td align="left">ietf-constrained-voucher</td>
                <td align="left">
                  <xref target="I-D.ietf-anima-constrained-voucher"/></td>
              </tr>
              <tr>
                <td align="right">2500</td>
                <td align="right">50</td>
                <td align="left">ietf-constrained-voucher-request</td>
                <td align="left">
                  <xref target="I-D.ietf-anima-constrained-voucher"/></td>
              </tr>
            </tbody>
          </table>
          <t>// RFC Ed.: replace XXXX with RFC number assigned to this draft.</t>
          <t>For allocation, RFC publication of the YANG module is required as per <xref target="RFC8126"/>. The YANG module must be registered in the "YANG module Name" registry according to the rules specified in <xref section="14" sectionFormat="of" target="RFC6020"/>.</t>
        </section>
      </section>
      <section anchor="ietf-sid-registry">
        <name>Create new IANA Registry: "IETF YANG SID Registry"</name>
        <t>The name of this registry is "IETF YANG SID Registry".  This registry is used to
record the allocation of SIDs for individual YANG module items.</t>
        <section anchor="structure-1">
          <name>Structure</name>
          <t>Each entry in this registry must include:</t>
          <ul spacing="normal">
            <li>
              <t>The YANG module name. This module name must be present in the "Name" column of the "YANG Module Names" registry.</t>
            </li>
            <li>
              <t>A link to the associated ".yang" file.  This file link must be present in the "File" column of the "YANG Module Names" registry.</t>
            </li>
            <li>
              <t>The link to the ".sid" file which defines the allocation. The ".sid" file is stored by IANA.</t>
            </li>
            <li>
              <t>The number of actually allocated SIDs in the ".sid" file.</t>
            </li>
          </ul>
        </section>
        <section anchor="allocation-policy-1">
          <name>Allocation policy</name>
          <t>The allocation policy is Expert review. The Expert <bcp14>MUST</bcp14> ensure that the following conditions are met:</t>
          <ul spacing="normal">
            <li>
              <t>The ".sid" file has a valid structure:
              </t>
              <ul spacing="normal">
                <li>
                  <t>The ".sid" file <bcp14>MUST</bcp14> be a valid JSON file following the structure of the
module defined in RFCXXXX (RFC Ed: replace XXX with RFC number assigned
to this draft).</t>
                </li>
              </ul>
            </li>
            <li>
              <t>The ".sid" file allocates individual SIDs ONLY in the YANG SID Ranges for this
YANG module (as allocated in the IETF YANG SID Range Registry):
              </t>
              <ul spacing="normal">
                <li>
                  <t>All SIDs in this ".sid" file <bcp14>MUST</bcp14> be within the ranges allocated to this
YANG module in the "IETF YANG SID Range Registry".</t>
                </li>
              </ul>
            </li>
            <li>
              <t>If another ".sid" file has already allocated SIDs for this YANG module (e.g.
for older or newer versions of the YANG module), the YANG items are assigned
the same SIDs as in the other ".sid" file.</t>
            </li>
            <li>
              <t>If there is an older version of the ".sid" file, all allocated SIDs from that
version are still present in the current version of the ".sid" file.</t>
            </li>
          </ul>
        </section>
        <section anchor="recursive-allocation-at-adoption">
          <name>Recursive Allocation of YANG SID Range at Document Adoption</name>
          <t>Due to the difficulty in changing SID values during IETF document processing,
it is expected that most documents will ask for SID allocations using Early
Allocations <xref target="BCP100"/>. The details of the Early Allocation should be included
in any Working Group Adoption call. Prior to Working Group Adoption, an internet
draft author can use the experimental SID range (as per
<xref target="ietf-iana-sid-range-allocation-policy"/>) for their SIDs allocations or
other values that do not create ambiguity with other SID uses (for example
they can use a range that comes from a non-IANA managed "YANG SID Mega-Range"
registry).</t>
          <t>After Working Group Adoption, any modification of a ".sid" file is expected to be
discussed on the mailing list of the appropriate Working Groups. Specific
attention should be paid to implementers' opinion after Working Group Last Call
if a SID value is to change its meaning. In all cases, a ".sid" file and the SIDs
associated with it are subject to change before the publication of an internet
draft as an RFC.</t>
          <t>During the early use of SIDs, many existing, previously published YANG modules
will not have SID allocations.  For an allocation to be useful the included
YANG modules may also need to have SID allocations made, in a process
that will generally analogous to that in <xref target="publink"/> for the type-3 case.</t>
          <t>The Expert Reviewer who performs the (Early) Allocation analysis will need to
go through the list of included YANG modules and perform SID allocations for
those modules as well.</t>
          <ul spacing="normal">
            <li>
              <t>If the document is a published RFC, then the allocation of SIDs for its
referenced YANG modules is permanent.  The Expert Reviewer provides the
generated ".sid" file to IANA for registration.</t>
            </li>
            <li>
              <t>If the document is an unprocessed Internet-Draft adopted in a WG, then an
Early Allocation is performed for this document as well. Early Allocations
require approval by an IESG Area Director.  An early allocation which
requires additional allocations will list the other allocations in its
description, and will be cross-posted to the any other working group mailing
lists.</t>
            </li>
            <li>
              <t>A YANG module which references a module in a document which has not yet been
adopted by any working group will be unable to perform an Early Allocation
for that other document until it is adopted by a working group.  As described
in <xref target="BCP100"/>, an AD Sponsored document acts as if it had a working group.  The
approving AD may also exempt a document from this policy by agreeing to AD
Sponsor the document.</t>
            </li>
          </ul>
          <t>At the end of the IETF process all the dependencies of a given module for which
SIDs are assigned, should also have SIDs assigned. Those dependencies'
assignments should be permanent (not Early Allocation).</t>
          <t>A previously SID-allocated YANG module which changes its references to include
a YANG module for which there is no SID allocation needs to repeat the Early
Allocation process.</t>
          <t>Early Allocations are made with a one-year period, after which they
need to be renewed or will expire.</t>
          <t><xref target="BCP100"/> also says:</t>
          <artwork><![CDATA[
Note that if a document is submitted for review to the IESG and at
the time of submission some early allocations are valid (not
expired), these allocations should not be expired while the document
is under IESG consideration or waiting in the RFC Editor's queue
after approval by the IESG.
]]></artwork>
        </section>
        <section anchor="initial-contents-of-the-registry-1">
          <name>Initial contents of the registry</name>
          <t>None.</t>
        </section>
      </section>
      <section anchor="register-media-type-and-content-format">
        <name>Register Media Type and Content-Format</name>
        <section anchor="media-type-applicationyang-sidjson">
          <name>Media Type application/yang-sid+json</name>
          <t>This document adds the following Media-Type to the "Media Types" registry.</t>
          <table align="left">
            <name>SID File Media-Type Registration</name>
            <thead>
              <tr>
                <th align="left">Name</th>
                <th align="left">Template</th>
                <th align="left">Reference</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">yang-sid+json</td>
                <td align="left">application/yang-sid+json</td>
                <td align="left">RFC XXXX</td>
              </tr>
            </tbody>
          </table>
          <t>// RFC Ed.: please replace RFC XXXX with this RFC number and remove this note.</t>
          <dl spacing="compact">
            <dt>Type name:</dt>
            <dd>
              <t>application</t>
            </dd>
            <dt>Subtype name:</dt>
            <dd>
              <t>yang-sid+json</t>
            </dd>
            <dt>Required parameters:</dt>
            <dd>
              <t>N/A</t>
            </dd>
            <dt>Optional parameters:</dt>
            <dd>
              <t>N/A</t>
            </dd>
            <dt>Encoding considerations:</dt>
            <dd>
              <t>binary (UTF-8)</t>
            </dd>
            <dt>Security considerations:</dt>
            <dd>
              <t>see <xref target="security-considerations"/> of RFC XXXX</t>
            </dd>
            <dt>Published specification:</dt>
            <dd>
              <t>RFC XXXX</t>
            </dd>
            <dt>Applications that use this media type:</dt>
            <dd>
              <t>applications that need to obtain YANG SIDs to interchange
YANG-modeled data in a concise and efficient representation</t>
            </dd>
            <dt>Fragment identifier considerations:</dt>
            <dd>
              <t>The syntax and semantics of
    fragment identifiers specified for "application/yang-sid+json" is
    as specified for "application/json".  (At publication of this
    document, there is no fragment identification syntax defined for
    "application/json".)</t>
            </dd>
            <dt>Additional information:</dt>
            <dd>
              <dl>
                <dt><br/></dt>
                <dd>
                  <t/>
                </dd>
                <dt>Magic number(s):</dt>
                <dd>
                  <t>N/A</t>
                </dd>
                <dt>File extension(s):</dt>
                <dd>
                  <t>.sid</t>
                </dd>
                <dt>Macintosh file type code(s):</dt>
                <dd>
                  <t>N/A</t>
                </dd>
              </dl>
            </dd>
            <dt>Person &amp; email address to contact for further information:</dt>
            <dd>
              <t>CORE WG mailing list (core@ietf.org),
or IETF Applications and Real-Time Area (art@ietf.org)</t>
            </dd>
            <dt>Intended usage:</dt>
            <dd>
              <t>COMMON</t>
            </dd>
            <dt>Restrictions on usage:</dt>
            <dd>
              <t>none</t>
            </dd>
            <dt>Author/Change controller:</dt>
            <dd>
              <t>IETF</t>
            </dd>
          </dl>
        </section>
        <section anchor="coap-content-format">
          <name>CoAP Content-Format</name>
          <t>This document adds the following Content-Format to the "CoAP Content-Formats",
within the "Constrained RESTful Environments (CoRE) Parameters"
registry, where TBD1 comes from the "IETF Review" 256-999 range.</t>
          <table align="left">
            <name>SID File Content-format Registration</name>
            <thead>
              <tr>
                <th align="left">Content Type</th>
                <th align="left">Content Coding</th>
                <th align="left">ID</th>
                <th align="left">Reference</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">application/yang-sid+json</td>
                <td align="left">-</td>
                <td align="left">TBD1</td>
                <td align="left">RFC XXXX</td>
              </tr>
            </tbody>
          </table>
          <t>// RFC Ed.: please replace TBDx with assigned IDs, remove the
requested ranges, and remove this note.<br/>
// RFC Ed.: please replace RFC XXXX with this RFC number and remove this note.</t>
        </section>
      </section>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC3688">
          <front>
            <title>The IETF XML Registry</title>
            <author fullname="M. Mealling" initials="M." surname="Mealling"/>
            <date month="January" year="2004"/>
            <abstract>
              <t>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="RFC6991">
          <front>
            <title>Common YANG Data Types</title>
            <author fullname="J. Schoenwaelder" initials="J." role="editor" surname="Schoenwaelder"/>
            <date month="July" year="2013"/>
            <abstract>
              <t>This document introduces a collection of common data types to be used with the YANG data modeling language. This document obsoletes RFC 6021.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6991"/>
          <seriesInfo name="DOI" value="10.17487/RFC6991"/>
        </reference>
        <referencegroup anchor="BCP100">
          <reference anchor="RFC7120" target="https://www.rfc-editor.org/info/rfc7120">
            <front>
              <title>Early IANA Allocation of Standards Track Code Points</title>
              <author fullname="M. Cotton" initials="M." surname="Cotton"/>
              <date month="January" year="2014"/>
              <abstract>
                <t>This memo describes the process for early allocation of code points by IANA from registries for which "Specification Required", "RFC Required", "IETF Review", or "Standards Action" policies apply. This process can be used to alleviate the problem where code point allocation is needed to facilitate desired or required implementation and deployment experience prior to publication of an RFC, which would normally trigger code point allocation. The procedures in this document are intended to apply only to IETF Stream documents.</t>
              </abstract>
            </front>
            <seriesInfo name="BCP" value="100"/>
            <seriesInfo name="RFC" value="7120"/>
            <seriesInfo name="DOI" value="10.17487/RFC7120"/>
          </reference>
        </referencegroup>
        <reference anchor="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>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="RFC7951">
          <front>
            <title>JSON Encoding of Data Modeled with YANG</title>
            <author fullname="L. Lhotka" initials="L." surname="Lhotka"/>
            <date month="August" year="2016"/>
            <abstract>
              <t>This document defines encoding rules for representing configuration data, state data, parameters of Remote Procedure Call (RPC) operations or actions, and notifications defined using YANG as JavaScript Object Notation (JSON) text.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7951"/>
          <seriesInfo name="DOI" value="10.17487/RFC7951"/>
        </reference>
        <reference anchor="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>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="RFC8259">
          <front>
            <title>The JavaScript Object Notation (JSON) Data Interchange Format</title>
            <author fullname="T. Bray" initials="T." role="editor" surname="Bray"/>
            <date month="December" year="2017"/>
            <abstract>
              <t>JavaScript Object Notation (JSON) is a lightweight, text-based, language-independent data interchange format. It was derived from the ECMAScript Programming Language Standard. JSON defines a small set of formatting rules for the portable representation of structured data.</t>
              <t>This document removes inconsistencies with other specifications of JSON, repairs specification errors, and offers experience-based interoperability guidance.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="90"/>
          <seriesInfo name="RFC" value="8259"/>
          <seriesInfo name="DOI" value="10.17487/RFC8259"/>
        </reference>
        <reference anchor="RFC8791">
          <front>
            <title>YANG Data Structure Extensions</title>
            <author fullname="A. Bierman" initials="A." surname="Bierman"/>
            <author fullname="M. Björklund" initials="M." surname="Björklund"/>
            <author fullname="K. Watsen" initials="K." surname="Watsen"/>
            <date month="June" year="2020"/>
            <abstract>
              <t>This document describes YANG mechanisms for defining abstract data structures with YANG.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8791"/>
          <seriesInfo name="DOI" value="10.17487/RFC8791"/>
        </reference>
        <reference anchor="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>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="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>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>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="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>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">
          <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>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="RFC7224">
          <front>
            <title>IANA Interface Type YANG Module</title>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
            <date month="May" year="2014"/>
            <abstract>
              <t>This document defines the initial version of the iana-if-type YANG module.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7224"/>
          <seriesInfo name="DOI" value="10.17487/RFC7224"/>
        </reference>
        <reference anchor="RFC7228">
          <front>
            <title>Terminology for Constrained-Node Networks</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <author fullname="M. Ersue" initials="M." surname="Ersue"/>
            <author fullname="A. Keranen" initials="A." surname="Keranen"/>
            <date month="May" year="2014"/>
            <abstract>
              <t>The Internet Protocol Suite is increasingly used on small devices with severe constraints on power, memory, and processing resources, creating constrained-node networks. This document provides a number of basic terms that have been useful in the standardization work for constrained-node networks.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7228"/>
          <seriesInfo name="DOI" value="10.17487/RFC7228"/>
        </reference>
        <reference anchor="RFC7317">
          <front>
            <title>A YANG Data Model for System Management</title>
            <author fullname="A. Bierman" initials="A." surname="Bierman"/>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
            <date month="August" year="2014"/>
            <abstract>
              <t>This document defines a YANG data model for the configuration and identification of some common system properties within a device containing a Network Configuration Protocol (NETCONF) server. This document also includes data node definitions for system identification, time-of-day management, user management, DNS resolver configuration, and some protocol operations for system management.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7317"/>
          <seriesInfo name="DOI" value="10.17487/RFC7317"/>
        </reference>
        <reference anchor="RFC8126">
          <front>
            <title>Guidelines for Writing an IANA Considerations Section in RFCs</title>
            <author fullname="M. Cotton" initials="M." surname="Cotton"/>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <author fullname="T. Narten" initials="T." surname="Narten"/>
            <date month="June" year="2017"/>
            <abstract>
              <t>Many protocols make use of points of extensibility that use constants to identify various protocol parameters. To ensure that the values in these fields do not have conflicting uses and to promote interoperability, their allocations are often coordinated by a central record keeper. For IETF protocols, that role is filled by the Internet Assigned Numbers Authority (IANA).</t>
              <t>To make assignments in a given registry prudently, guidance describing the conditions under which new values should be assigned, as well as when and how modifications to existing values can be made, is needed. This document defines a framework for the documentation of these guidelines by specification authors, in order to assure that the provided guidance for the IANA Considerations is clear and addresses the various issues that are likely in the operation of a registry.</t>
              <t>This is the third edition of this document; it obsoletes RFC 5226.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="26"/>
          <seriesInfo name="RFC" value="8126"/>
          <seriesInfo name="DOI" value="10.17487/RFC8126"/>
        </reference>
        <reference anchor="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>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>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="RFC8343">
          <front>
            <title>A YANG Data Model for Interface Management</title>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
            <date month="March" year="2018"/>
            <abstract>
              <t>This document defines a YANG data model for the management of network interfaces. It is expected that interface-type-specific data models augment the generic interfaces data model defined in this document. The data model includes definitions for configuration and system state (status information and counters for the collection of statistics).</t>
              <t>The YANG data model in this document conforms to the Network Management Datastore Architecture (NMDA) defined in RFC 8342.</t>
              <t>This document obsoletes RFC 7223.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8343"/>
          <seriesInfo name="DOI" value="10.17487/RFC8343"/>
        </reference>
        <reference anchor="RFC8344">
          <front>
            <title>A YANG Data Model for IP Management</title>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
            <date month="March" year="2018"/>
            <abstract>
              <t>This document defines a YANG data model for management of IP implementations. The data model includes configuration and system state.</t>
              <t>The YANG data model in this document conforms to the Network Management Datastore Architecture defined in RFC 8342.</t>
              <t>This document obsoletes RFC 7277.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8344"/>
          <seriesInfo name="DOI" value="10.17487/RFC8344"/>
        </reference>
        <reference anchor="RFC8366">
          <front>
            <title>A Voucher Artifact for Bootstrapping Protocols</title>
            <author fullname="K. Watsen" initials="K." surname="Watsen"/>
            <author fullname="M. Richardson" initials="M." surname="Richardson"/>
            <author fullname="M. Pritikin" initials="M." surname="Pritikin"/>
            <author fullname="T. Eckert" initials="T." surname="Eckert"/>
            <date month="May" year="2018"/>
            <abstract>
              <t>This document defines a strategy to securely assign a pledge to an owner using an artifact signed, directly or indirectly, by the pledge's manufacturer. This artifact is known as a "voucher".</t>
              <t>This document defines an artifact format as a YANG-defined JSON document that has been signed using a Cryptographic Message Syntax (CMS) structure. Other YANG-derived formats are possible. The voucher artifact is normally generated by the pledge's manufacturer (i.e., the Manufacturer Authorized Signing Authority (MASA)).</t>
              <t>This document only defines the voucher artifact, leaving it to other documents to describe specialized protocols for accessing it.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8366"/>
          <seriesInfo name="DOI" value="10.17487/RFC8366"/>
        </reference>
        <reference anchor="RFC8407">
          <front>
            <title>Guidelines for Authors and Reviewers of Documents Containing YANG Data Models</title>
            <author fullname="A. Bierman" initials="A." surname="Bierman"/>
            <date month="October" year="2018"/>
            <abstract>
              <t>This memo provides guidelines for authors and reviewers of specifications containing 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. This document obsoletes RFC 6087.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="216"/>
          <seriesInfo name="RFC" value="8407"/>
          <seriesInfo name="DOI" value="10.17487/RFC8407"/>
        </reference>
        <reference anchor="RFC8792">
          <front>
            <title>Handling Long Lines in Content of Internet-Drafts and RFCs</title>
            <author fullname="K. Watsen" initials="K." surname="Watsen"/>
            <author fullname="E. Auerswald" initials="E." surname="Auerswald"/>
            <author fullname="A. Farrel" initials="A." surname="Farrel"/>
            <author fullname="Q. Wu" initials="Q." surname="Wu"/>
            <date month="June" year="2020"/>
            <abstract>
              <t>This document defines two strategies for handling long lines in width-bounded text content. One strategy, called the "single backslash" strategy, is based on the historical use of a single backslash ('\') character to indicate where line-folding has occurred, with the continuation occurring with the first character that is not a space character (' ') on the next line. The second strategy, called the "double backslash" strategy, extends the first strategy by adding a second backslash character to identify where the continuation begins and is thereby able to handle cases not supported by the first strategy. Both strategies use a self-describing header enabling automated reconstitution of the original content.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8792"/>
          <seriesInfo name="DOI" value="10.17487/RFC8792"/>
        </reference>
        <reference anchor="I-D.ietf-core-comi">
          <front>
            <title>CoAP Management Interface (CORECONF)</title>
            <author fullname="Michel Veillette" initials="M." surname="Veillette">
              <organization>Trilliant Networks Inc.</organization>
            </author>
            <author fullname="Peter Van der Stok" initials="P." surname="Van der Stok">
              <organization>consultant</organization>
            </author>
            <author fullname="Alexander Pelov" initials="A." surname="Pelov">
              <organization>Acklio</organization>
            </author>
            <author fullname="Andy Bierman" initials="A." surname="Bierman">
              <organization>YumaWorks</organization>
            </author>
            <author fullname="Carsten Bormann" initials="C." surname="Bormann">
              <organization>Universität Bremen TZI</organization>
            </author>
            <date day="4" month="September" year="2023"/>
            <abstract>
              <t>   This document describes a network management interface for
   constrained devices and networks, called CoAP Management Interface
   (CORECONF).  The Constrained Application Protocol (CoAP) is used to
   access datastore and data node resources specified in YANG, or SMIv2
   converted to YANG.  CORECONF uses the YANG to CBOR mapping and
   converts YANG identifier strings to numeric identifiers for payload
   size reduction.  CORECONF extends the set of YANG based protocols,
   NETCONF and RESTCONF, with the capability to manage constrained
   devices and networks.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-core-comi-16"/>
        </reference>
        <reference anchor="I-D.ietf-core-yang-library">
          <front>
            <title>Constrained YANG Module Library</title>
            <author fullname="Michel Veillette" initials="M." surname="Veillette">
              <organization>Trilliant Networks Inc.</organization>
            </author>
            <author fullname="Ivaylo Petrov" initials="I." surname="Petrov">
              <organization>Acklio</organization>
            </author>
            <date day="11" month="January" year="2021"/>
            <abstract>
              <t>   This document describes a constrained version of the YANG library
   that provides information about the YANG modules, datastores, and
   datastore schemas used by a constrained network management server
   (e.g., a CORECONF server).

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-core-yang-library-03"/>
        </reference>
        <reference anchor="I-D.ietf-anima-constrained-voucher">
          <front>
            <title>Constrained Bootstrapping Remote Secure Key Infrastructure (BRSKI)</title>
            <author fullname="Michael Richardson" initials="M." surname="Richardson">
              <organization>Sandelman Software Works</organization>
            </author>
            <author fullname="Peter Van der Stok" initials="P." surname="Van der Stok">
              <organization>vanderstok consultancy</organization>
            </author>
            <author fullname="Panos Kampanakis" initials="P." surname="Kampanakis">
              <organization>Cisco Systems</organization>
            </author>
            <author fullname="Esko Dijk" initials="E." surname="Dijk">
              <organization>IoTconsultancy.nl</organization>
            </author>
            <date day="7" month="July" year="2023"/>
            <abstract>
              <t>   This document defines the Constrained Bootstrapping Remote Secure Key
   Infrastructure (Constrained BRSKI) protocol, which provides a
   solution for secure zero-touch bootstrapping of resource-constrained
   (IoT) devices into the network of a domain owner.  This protocol is
   designed for constrained networks, which may have limited data
   throughput or may experience frequent packet loss.  Constrained BRSKI
   is a variant of the BRSKI protocol, which uses an artifact signed by
   the device manufacturer called the "voucher" which enables a new
   device and the owner's network to mutually authenticate.  While the
   BRSKI voucher is typically encoded in JSON, Constrained BRSKI uses a
   compact CBOR-encoded voucher.  The BRSKI voucher is extended with new
   data types that allow for smaller voucher sizes.  The Enrollment over
   Secure Transport (EST) protocol, used in BRSKI, is replaced with EST-
   over-CoAPS; and HTTPS used in BRSKI is replaced with CoAPS.  This
   document Updates RFC 8366 and RFC 8995.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-anima-constrained-voucher-21"/>
        </reference>
        <reference anchor="RFC9254">
          <front>
            <title>Encoding of Data Modeled with YANG in the Concise Binary Object Representation (CBOR)</title>
            <author fullname="M. Veillette" initials="M." role="editor" surname="Veillette"/>
            <author fullname="I. Petrov" initials="I." role="editor" surname="Petrov"/>
            <author fullname="A. Pelov" initials="A." surname="Pelov"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <author fullname="M. Richardson" initials="M." surname="Richardson"/>
            <date month="July" year="2022"/>
            <abstract>
              <t>YANG (RFC 7950) is a data modeling language used to model configuration data, state data, parameters and results of Remote Procedure Call (RPC) operations or actions, and notifications.</t>
              <t>This document defines encoding rules for YANG in the Concise Binary Object Representation (CBOR) (RFC 8949).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9254"/>
          <seriesInfo name="DOI" value="10.17487/RFC9254"/>
        </reference>
        <reference anchor="yangcatalog" target="https://yangcatalog.org">
          <front>
            <title>YANG Catalog</title>
            <author>
              <organization/>
            </author>
            <date/>
          </front>
        </reference>
        <reference anchor="PYANG" target="https://github.com/mbj4668/pyang">
          <front>
            <title>An extensible YANG validator and converter in python</title>
            <author initials="M." surname="Bjorklund" fullname="Martin Bjorklund">
              <organization/>
            </author>
            <date/>
          </front>
        </reference>
        <reference anchor="I-D.bormann-t2trg-deref-id">
          <front>
            <title>The "dereferenceable identifier" pattern</title>
            <author fullname="Carsten Bormann" initials="C." surname="Bormann">
              <organization>Universität Bremen TZI</organization>
            </author>
            <author fullname="Christian Amsüss" initials="C." surname="Amsüss">
         </author>
            <date day="9" month="May" year="2023"/>
            <abstract>
              <t>   In a protocol or an application environment, it is often important to
   be able to create unambiguous identifiers for some meaning (concept
   or some entity).

   Due to the simplicity of creating URIs, these have become popular for
   this purpose.  Beyond the purpose of identifiers to be uniquely
   associated with a meaning, some of these URIs are in principle
   _dereferenceable_, so something can be placed that can be retrieved
   when encountering such a URI.

   The present -00 version is a stub to draw some attention to the
   opportunity that this pattern would benefit from a common
   description, documenting its benefits and pitfalls, and some
   mitigations for the latter.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-bormann-t2trg-deref-id-01"/>
        </reference>
        <reference anchor="RFC9195">
          <front>
            <title>A File Format for YANG Instance Data</title>
            <author fullname="B. Lengyel" initials="B." surname="Lengyel"/>
            <author fullname="B. Claise" initials="B." surname="Claise"/>
            <date month="February" year="2022"/>
            <abstract>
              <t>There is a need to document data defined in YANG models at design time, implementation time, or when a live server is unavailable. This document specifies a standard file format for YANG instance data, which follows the syntax and semantics of existing YANG models and annotates it with metadata.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9195"/>
          <seriesInfo name="DOI" value="10.17487/RFC9195"/>
        </reference>
      </references>
    </references>
    <?line 1315?>

<section anchor="sid-file-example">
      <name>".sid" file example</name>
      <t>The following ".sid" file (ietf-system@2014-08-06.sid) has been generated using the following yang modules:</t>
      <ul spacing="normal">
        <li>
          <t>ietf-system@2014-08-06.yang (defined in <xref target="RFC7317"/>)</t>
        </li>
        <li>
          <t>ietf-yang-types@2013-07-15.yang (defined in <xref target="RFC6991"/>)</t>
        </li>
        <li>
          <t>ietf-inet-types@2013-07-15.yang (defined in <xref target="RFC6991"/>)</t>
        </li>
        <li>
          <t>ietf-netconf-acm@2018-02-14.yang (defined in <xref target="RFC8341"/>)</t>
        </li>
        <li>
          <t>iana-crypt-hash@2014-08-06.yang (defined in <xref target="RFC7317"/>)</t>
        </li>
      </ul>
      <t>For purposes of exposition, line breaks have been introduced below in
some JSON strings that represent overly long identifiers.</t>
      <!-- /^ *[^" ]+"/ -->

<figure anchor="sid-example-pretty">
        <name>Example .sid file (ietf-system, with extra line-breaks)</name>
        <sourcecode type="yang-sid"><![CDATA[
=============== NOTE: '\' line wrapping per RFC 8792 ================

{
  "ietf-sid-file:sid-file": {
    "module-name": "ietf-system",
    "module-revision": "2014-08-06",
    "description": "Example sid file",
    "dependency-revision": [
      {
        "module-name": "ietf-yang-types",
        "module-revision": "2013-07-15"
      },
      {
        "module-name": "ietf-inet-types",
        "module-revision": "2013-07-15"
      },
      {
        "module-name": "ietf-netconf-acm",
        "module-revision": "2018-02-14"
      },
      {
        "module-name": "iana-crypt-hash",
        "module-revision": "2014-08-06"
      }
    ],
    "assignment-range": [
      {
        "entry-point": "1700",
        "size": "100"
      }
    ],
    "item": [
      {
        "namespace": "module",
        "identifier": "ietf-system",
        "sid": "1700"
      },
      {
        "namespace": "identity",
        "identifier": "authentication-method",
        "sid": "1701"
      },
      {
        "namespace": "identity",
        "identifier": "local-users",
        "sid": "1702"
      },
      {
        "namespace": "identity",
        "identifier": "radius",
        "sid": "1703"
      },
      {
        "namespace": "identity",
        "identifier": "radius-authentication-type",
        "sid": "1704"
      },
      {
        "namespace": "identity",
        "identifier": "radius-chap",
        "sid": "1705"
      },
      {
        "namespace": "identity",
        "identifier": "radius-pap",
        "sid": "1706"
      },
      {
        "namespace": "feature",
        "identifier": "authentication",
        "sid": "1707"
      },
      {
        "namespace": "feature",
        "identifier": "dns-udp-tcp-port",
        "sid": "1708"
      },
      {
        "namespace": "feature",
        "identifier": "local-users",
        "sid": "1709"
      },
      {
        "namespace": "feature",
        "identifier": "ntp",
        "sid": "1710"
      },
      {
        "namespace": "feature",
        "identifier": "ntp-udp-port",
        "sid": "1711"
      },
      {
        "namespace": "feature",
        "identifier": "radius",
        "sid": "1712"
      },
      {
        "namespace": "feature",
        "identifier": "radius-authentication",
        "sid": "1713"
      },
      {
        "namespace": "feature",
        "identifier": "timezone-name",
        "sid": "1714"
      },
      {
        "namespace": "data",
        "identifier": "/ietf-system:set-current-datetime",
        "sid": "1715"
      },
      {
        "namespace": "data",
        "identifier": "/ietf-system:set-current-datetime/input",
        "sid": "1775"
      },
      {
        "namespace": "data",
        "identifier": "/ietf-system:set-current-datetime/input/\
                                                   current-datetime",
        "sid": "1776"
      },
      {
        "namespace": "data",
        "identifier": "/ietf-system:system",
        "sid": "1717"
      },
      {
        "namespace": "data",
        "identifier": "/ietf-system:system-restart",
        "sid": "1718"
      },
      {
        "namespace": "data",
        "identifier": "/ietf-system:system-shutdown",
        "sid": "1719"
      },
      {
        "namespace": "data",
        "identifier": "/ietf-system:system-state",
        "sid": "1720"
      },
      {
        "namespace": "data",
        "identifier": "/ietf-system:system-state/clock",
        "sid": "1721"
      },
      {
        "namespace": "data",
        "identifier": "/ietf-system:system-state/clock/boot-datetime\
                                                                   ",
        "sid": "1722"
      },
      {
        "namespace": "data",
        "identifier": "/ietf-system:system-state/clock/current-\
                                                           datetime",
        "sid": "1723"
      },
      {
        "namespace": "data",
        "identifier": "/ietf-system:system-state/platform",
        "sid": "1724"
      },
      {
        "namespace": "data",
        "identifier": "/ietf-system:system-state/platform/machine",
        "sid": "1725"
      },
      {
        "namespace": "data",
        "identifier": "/ietf-system:system-state/platform/os-name",
        "sid": "1726"
      },
      {
        "namespace": "data",
        "identifier": "/ietf-system:system-state/platform/os-release\
                                                                   ",
        "sid": "1727"
      },
      {
        "namespace": "data",
        "identifier": "/ietf-system:system-state/platform/os-version\
                                                                   ",
        "sid": "1728"
      },
      {
        "namespace": "data",
        "identifier": "/ietf-system:system/authentication",
        "sid": "1729"
      },
      {
        "namespace": "data",
        "identifier": "/ietf-system:system/authentication/user",
        "sid": "1730"
      },
      {
        "namespace": "data",
        "identifier": "/ietf-system:system/authentication/user-\
                                               authentication-order",
        "sid": "1731"
      },
      {
        "namespace": "data",
        "identifier": "/ietf-system:system/authentication/user/\
                                                     authorized-key",
        "sid": "1732"
      },
      {
        "namespace": "data",
        "identifier": "/ietf-system:system/authentication/user/\
                                           authorized-key/algorithm",
        "sid": "1733"
      },
      {
        "namespace": "data",
        "identifier": "/ietf-system:system/authentication/user/\
                                            authorized-key/key-data",
        "sid": "1734"
      },
      {
        "namespace": "data",
        "identifier": "/ietf-system:system/authentication/user/\
                                                authorized-key/name",
        "sid": "1735"
      },
      {
        "namespace": "data",
        "identifier": "/ietf-system:system/authentication/user/name",
        "sid": "1736"
      },
      {
        "namespace": "data",
        "identifier": "/ietf-system:system/authentication/user/\
                                                           password",
        "sid": "1737"
      },
      {
        "namespace": "data",
        "identifier": "/ietf-system:system/clock",
        "sid": "1738"
      },
      {
        "namespace": "data",
        "identifier": "/ietf-system:system/clock/timezone-name",
        "sid": "1739"
      },
      {
        "namespace": "data",
        "identifier": "/ietf-system:system/clock/timezone-utc-offset\
                                                                   ",
        "sid": "1740"
      },
      {
        "namespace": "data",
        "identifier": "/ietf-system:system/contact",
        "sid": "1741"
      },
      {
        "namespace": "data",
        "identifier": "/ietf-system:system/dns-resolver",
        "sid": "1742"
      },
      {
        "namespace": "data",
        "identifier": "/ietf-system:system/dns-resolver/options",
        "sid": "1743"
      },
      {
        "namespace": "data",
        "identifier": "/ietf-system:system/dns-resolver/options/\
                                                           attempts",
        "sid": "1744"
      },
      {
        "namespace": "data",
        "identifier": "/ietf-system:system/dns-resolver/options/\
                                                            timeout",
        "sid": "1745"
      },
      {
        "namespace": "data",
        "identifier": "/ietf-system:system/dns-resolver/search",
        "sid": "1746"
      },
      {
        "namespace": "data",
        "identifier": "/ietf-system:system/dns-resolver/server",
        "sid": "1747"
      },
      {
        "namespace": "data",
        "identifier": "/ietf-system:system/dns-resolver/server/name",
        "sid": "1748"
      },
      {
        "namespace": "data",
        "identifier": "/ietf-system:system/dns-resolver/server/udp-\
                                                            and-tcp",
        "sid": "1749"
      },
      {
        "namespace": "data",
        "identifier": "/ietf-system:system/dns-resolver/server/udp-\
                                                    and-tcp/address",
        "sid": "1750"
      },
      {
        "namespace": "data",
        "identifier": "/ietf-system:system/dns-resolver/server/udp-\
                                                       and-tcp/port",
        "sid": "1751"
      },
      {
        "namespace": "data",
        "identifier": "/ietf-system:system/hostname",
        "sid": "1752"
      },
      {
        "namespace": "data",
        "identifier": "/ietf-system:system/location",
        "sid": "1753"
      },
      {
        "namespace": "data",
        "identifier": "/ietf-system:system/ntp",
        "sid": "1754"
      },
      {
        "namespace": "data",
        "identifier": "/ietf-system:system/ntp/enabled",
        "sid": "1755"
      },
      {
        "namespace": "data",
        "identifier": "/ietf-system:system/ntp/server",
        "sid": "1756"
      },
      {
        "namespace": "data",
        "identifier": "/ietf-system:system/ntp/server/association-\
                                                               type",
        "sid": "1757"
      },
      {
        "namespace": "data",
        "identifier": "/ietf-system:system/ntp/server/iburst",
        "sid": "1758"
      },
      {
        "namespace": "data",
        "identifier": "/ietf-system:system/ntp/server/name",
        "sid": "1759"
      },
      {
        "namespace": "data",
        "identifier": "/ietf-system:system/ntp/server/prefer",
        "sid": "1760"
      },
      {
        "namespace": "data",
        "identifier": "/ietf-system:system/ntp/server/udp",
        "sid": "1761"
      },
      {
        "namespace": "data",
        "identifier": "/ietf-system:system/ntp/server/udp/address",
        "sid": "1762"
      },
      {
        "namespace": "data",
        "identifier": "/ietf-system:system/ntp/server/udp/port",
        "sid": "1763"
      },
      {
        "namespace": "data",
        "identifier": "/ietf-system:system/radius",
        "sid": "1764"
      },
      {
        "namespace": "data",
        "identifier": "/ietf-system:system/radius/options",
        "sid": "1765"
      },
      {
        "namespace": "data",
        "identifier": "/ietf-system:system/radius/options/attempts",
        "sid": "1766"
      },
      {
        "namespace": "data",
        "identifier": "/ietf-system:system/radius/options/timeout",
        "sid": "1767"
      },
      {
        "namespace": "data",
        "identifier": "/ietf-system:system/radius/server",
        "sid": "1768"
      },
      {
        "namespace": "data",
        "identifier": "/ietf-system:system/radius/server/\
                                                authentication-type",
        "sid": "1769"
      },
      {
        "namespace": "data",
        "identifier": "/ietf-system:system/radius/server/name",
        "sid": "1770"
      },
      {
        "namespace": "data",
        "identifier": "/ietf-system:system/radius/server/udp",
        "sid": "1771"
      },
      {
        "namespace": "data",
        "identifier": "/ietf-system:system/radius/server/udp/address\
                                                                   ",
        "sid": "1772"
      },
      {
        "namespace": "data",
        "identifier": "/ietf-system:system/radius/server/udp/\
                                                authentication-port",
        "sid": "1773"
      },
      {
        "namespace": "data",
        "identifier": "/ietf-system:system/radius/server/udp/shared-\
                                                             secret",
        "sid": "1774"
      }
    ]
  }
}
]]></sourcecode>
      </figure>
    </section>
    <section anchor="sid-auto-generation">
      <name>SID auto generation</name>
      <t>Assignment of SIDs to YANG items <bcp14>SHOULD</bcp14> be automated.
The recommended process to assign SIDs is as follows:</t>
      <ol spacing="normal" type="1"><li>
          <t>A tool extracts the different items defined for a specific YANG module.</t>
        </li>
        <li>
          <t>The list of items is sorted in alphabetical order, 'namespace' in descending order, 'identifier' in ascending order. The 'namespace' and 'identifier' formats are described in the YANG module 'ietf-sid-file' defined in <xref target="sid-file-format"/>.</t>
        </li>
        <li>
          <t>SIDs are assigned sequentially from the entry point up to the size of the registered SID range. This approach is recommended to minimize the serialization overhead, especially when delta between a reference SID and the current SID is used by protocols aiming to reduce message size.</t>
        </li>
        <li>
          <t>If the number of items exceeds the SID range(s) allocated to a YANG module, an extra range is added for subsequent assignments.</t>
        </li>
        <li>
          <t>The "dependency-revision" should reflect the revision numbers of each
YANG module that the YANG module imports at the moment of the generation.</t>
        </li>
      </ol>
      <t>When updating a YANG module that is in active use, the existing SID assignments are maintained.
(In contrast, when evolving an early draft that has not yet been adopted by a community of developers, SID assignments are often better done from scratch after a revision.)
If the name of a schema node changes, but the data remain structurally and semantically similar to what was previously available under an old name, the SID that was used for the old name <bcp14>MAY</bcp14> continue to be used for the new name.
If the meaning of an item changes, a new SID <bcp14>MAY</bcp14> be assigned to it; this is particularly useful to allow the new SID to identify the new structure or semantics of the item.
If the YANG data type changes in a new revision of a published module,
such that the resulting CBOR encoding is changed, then implementations will be aided significantly if a new SID is assigned.
Note that these decisions are generally at the discretion of the YANG module author, who should decide if the benefits of a manual intervention are worth the deviation from automatic assignment.</t>
      <t>In case of an update to an existing ".sid" file, an additional step is needed
that increments the ".sid" file version number. If there was no version number
in the previous version of the ".sid" file, 0 is assumed as the version number
of the old version of the ".sid" file and the version number is 1 for the new
".sid" file. Apart from that, changes of ".sid" files can also be automated using
the same method described above, only unassigned YÀNG items are processed at
step #3. Already existing items in the ".sid" file should not be given new SIDs.</t>
      <t>Note that ".sid" file versions are specific to a YANG module revision. For each
new YANG module or each new revision of an existing YANG module, the version
number of the initial ".sid" file should either be 0 or should not be present.</t>
      <t>Note also that RPC or action "input" and "output" YANG items <bcp14>MUST</bcp14> always be
assigned SID even if they don't contain further YANG items. The reason for this
requirement is that other modules can augment the given module and those SIDs
might be necessary.</t>
    </section>
    <section anchor="sid-lifecycle-ex">
      <name>".sid" file lifecycle</name>
      <t>Before assigning SIDs to their YANG modules, YANG module authors must acquire a
SID range from a "YANG SID Range Registry". If the YANG module is part of an IETF
draft or RFC, the SID range need to be acquired from the "IETF YANG SID Range
Registry" as defined in <xref target="ietf-iana-sid-range-allocation"/>. For the other YANG
modules, the authors can acquire a SID range from any "YANG SID Range Registry" of
their choice.</t>
      <t>Once the SID range is acquired, owners can use it to generate ".sid" file/s
for their YANG module/s.  It is recommended to leave some unallocated SIDs
following the allocated range in each ".sid" file in order to allow better
evolution of the YANG module in the future.  Generation of ".sid" files should
be performed using an automated tool.  Note that ".sid" files can only be
generated for YANG modules and not for submodules.</t>
      <section anchor="sid-file-creation">
        <name>".sid" File Creation</name>
        <t>The following activity diagram summarizes the creation of a YANG module and its associated ".sid" file.</t>
        <figure anchor="fig-sid-file-creation">
          <name>SID Lifecycle</name>
          <artset>
            <artwork type="svg" align="left"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="832" width="504" viewBox="0 0 504 832" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px">
                <path d="M 8,240 L 8,336" fill="none" stroke="black"/>
                <path d="M 16,48 L 16,64" fill="none" stroke="black"/>
                <path d="M 48,320 L 48,368" fill="none" stroke="black"/>
                <path d="M 64,32 L 64,80" fill="none" stroke="black"/>
                <path d="M 104,272 L 104,312" fill="none" stroke="black"/>
                <path d="M 112,176 L 112,216" fill="none" stroke="black"/>
                <path d="M 120,80 L 120,120" fill="none" stroke="black"/>
                <path d="M 168,704 L 168,752" fill="none" stroke="black"/>
                <path d="M 176,320 L 176,368" fill="none" stroke="black"/>
                <path d="M 192,32 L 192,80" fill="none" stroke="black"/>
                <path d="M 208,416 L 208,464" fill="none" stroke="black"/>
                <path d="M 216,320 L 216,368" fill="none" stroke="black"/>
                <path d="M 224,224 L 224,272" fill="none" stroke="black"/>
                <path d="M 232,752 L 232,800" fill="none" stroke="black"/>
                <path d="M 248,656 L 248,696" fill="none" stroke="black"/>
                <path d="M 264,560 L 264,600" fill="none" stroke="black"/>
                <path d="M 272,464 L 272,504" fill="none" stroke="black"/>
                <path d="M 280,272 L 280,312" fill="none" stroke="black"/>
                <path d="M 280,368 L 280,408" fill="none" stroke="black"/>
                <path d="M 288,160 L 288,216" fill="none" stroke="black"/>
                <path d="M 296,704 L 296,752" fill="none" stroke="black"/>
                <path d="M 336,416 L 336,464" fill="none" stroke="black"/>
                <path d="M 344,320 L 344,368" fill="none" stroke="black"/>
                <path d="M 352,224 L 352,272" fill="none" stroke="black"/>
                <path d="M 368,704 L 368,752" fill="none" stroke="black"/>
                <path d="M 376,416 L 376,464" fill="none" stroke="black"/>
                <path d="M 432,256 L 432,416" fill="none" stroke="black"/>
                <path d="M 432,472 L 432,528" fill="none" stroke="black"/>
                <path d="M 432,640 L 432,696" fill="none" stroke="black"/>
                <path d="M 432,752 L 432,784" fill="none" stroke="black"/>
                <path d="M 488,416 L 488,464" fill="none" stroke="black"/>
                <path d="M 496,704 L 496,752" fill="none" stroke="black"/>
                <path d="M 64,32 L 192,32" fill="none" stroke="black"/>
                <path d="M 8,64 L 24,64" fill="none" stroke="black"/>
                <path d="M 40,64 L 56,64" fill="none" stroke="black"/>
                <path d="M 64,80 L 192,80" fill="none" stroke="black"/>
                <path d="M 64,128 L 176,128" fill="none" stroke="black"/>
                <path d="M 192,160 L 288,160" fill="none" stroke="black"/>
                <path d="M 64,176 L 176,176" fill="none" stroke="black"/>
                <path d="M 56,224 L 168,224" fill="none" stroke="black"/>
                <path d="M 224,224 L 352,224" fill="none" stroke="black"/>
                <path d="M 8,240 L 32,240" fill="none" stroke="black"/>
                <path d="M 184,256 L 216,256" fill="none" stroke="black"/>
                <path d="M 360,256 L 432,256" fill="none" stroke="black"/>
                <path d="M 56,272 L 168,272" fill="none" stroke="black"/>
                <path d="M 224,272 L 352,272" fill="none" stroke="black"/>
                <path d="M 48,320 L 176,320" fill="none" stroke="black"/>
                <path d="M 216,320 L 344,320" fill="none" stroke="black"/>
                <path d="M 8,336 L 48,336" fill="none" stroke="black"/>
                <path d="M 352,352 L 432,352" fill="none" stroke="black"/>
                <path d="M 48,368 L 176,368" fill="none" stroke="black"/>
                <path d="M 216,368 L 344,368" fill="none" stroke="black"/>
                <path d="M 208,416 L 336,416" fill="none" stroke="black"/>
                <path d="M 376,416 L 488,416" fill="none" stroke="black"/>
                <path d="M 208,464 L 336,464" fill="none" stroke="black"/>
                <path d="M 376,464 L 488,464" fill="none" stroke="black"/>
                <path d="M 224,512 L 312,512" fill="none" stroke="black"/>
                <path d="M 336,528 L 432,528" fill="none" stroke="black"/>
                <path d="M 224,560 L 312,560" fill="none" stroke="black"/>
                <path d="M 192,608 L 304,608" fill="none" stroke="black"/>
                <path d="M 320,640 L 432,640" fill="none" stroke="black"/>
                <path d="M 192,656 L 304,656" fill="none" stroke="black"/>
                <path d="M 168,704 L 296,704" fill="none" stroke="black"/>
                <path d="M 368,704 L 496,704" fill="none" stroke="black"/>
                <path d="M 168,752 L 296,752" fill="none" stroke="black"/>
                <path d="M 368,752 L 496,752" fill="none" stroke="black"/>
                <path d="M 232,784 L 432,784" fill="none" stroke="black"/>
                <path d="M 180,632 L 192,656" fill="none" stroke="black"/>
                <path d="M 44,248 L 56,272" fill="none" stroke="black"/>
                <path d="M 212,536 L 224,560" fill="none" stroke="black"/>
                <path d="M 52,152 L 64,176" fill="none" stroke="black"/>
                <path d="M 16,64 L 24,80" fill="none" stroke="black"/>
                <path d="M 304,608 L 316,632" fill="none" stroke="black"/>
                <path d="M 168,224 L 180,248" fill="none" stroke="black"/>
                <path d="M 312,512 L 324,536" fill="none" stroke="black"/>
                <path d="M 176,128 L 188,152" fill="none" stroke="black"/>
                <path d="M 8,80 L 16,64" fill="none" stroke="black"/>
                <path d="M 52,152 L 64,128" fill="none" stroke="black"/>
                <path d="M 44,248 L 56,224" fill="none" stroke="black"/>
                <path d="M 176,176 L 188,152" fill="none" stroke="black"/>
                <path d="M 168,272 L 180,248" fill="none" stroke="black"/>
                <path d="M 212,536 L 224,512" fill="none" stroke="black"/>
                <path d="M 180,632 L 192,608" fill="none" stroke="black"/>
                <path d="M 312,560 L 324,536" fill="none" stroke="black"/>
                <path d="M 304,656 L 316,632" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="440,696 428,690.4 428,701.6 " fill="black" transform="rotate(90,432,696)"/>
                <polygon class="arrowhead" points="440,472 428,466.4 428,477.6 " fill="black" transform="rotate(270,432,472)"/>
                <polygon class="arrowhead" points="368,256 356,250.4 356,261.6 " fill="black" transform="rotate(180,360,256)"/>
                <polygon class="arrowhead" points="360,352 348,346.4 348,357.6 " fill="black" transform="rotate(180,352,352)"/>
                <polygon class="arrowhead" points="296,216 284,210.4 284,221.6 " fill="black" transform="rotate(90,288,216)"/>
                <polygon class="arrowhead" points="288,408 276,402.4 276,413.6 " fill="black" transform="rotate(90,280,408)"/>
                <polygon class="arrowhead" points="288,312 276,306.4 276,317.6 " fill="black" transform="rotate(90,280,312)"/>
                <polygon class="arrowhead" points="280,504 268,498.4 268,509.6 " fill="black" transform="rotate(90,272,504)"/>
                <polygon class="arrowhead" points="272,600 260,594.4 260,605.6 " fill="black" transform="rotate(90,264,600)"/>
                <polygon class="arrowhead" points="256,696 244,690.4 244,701.6 " fill="black" transform="rotate(90,248,696)"/>
                <polygon class="arrowhead" points="240,800 228,794.4 228,805.6 " fill="black" transform="rotate(90,232,800)"/>
                <polygon class="arrowhead" points="224,256 212,250.4 212,261.6 " fill="black" transform="rotate(0,216,256)"/>
                <polygon class="arrowhead" points="128,120 116,114.4 116,125.6 " fill="black" transform="rotate(90,120,120)"/>
                <polygon class="arrowhead" points="120,216 108,210.4 108,221.6 " fill="black" transform="rotate(90,112,216)"/>
                <polygon class="arrowhead" points="112,312 100,306.4 100,317.6 " fill="black" transform="rotate(90,104,312)"/>
                <polygon class="arrowhead" points="64,64 52,58.4 52,69.6 " fill="black" transform="rotate(0,56,64)"/>
                <polygon class="arrowhead" points="40,240 28,234.4 28,245.6 " fill="black" transform="rotate(0,32,240)"/>
                <circle cx="16" cy="48" r="6" class="opendot" fill="white" stroke="black"/>
                <g class="text">
                  <text x="108" y="52">Creation</text>
                  <text x="156" y="52">of</text>
                  <text x="176" y="52">a</text>
                  <text x="92" y="68">YANG</text>
                  <text x="140" y="68">module</text>
                  <text x="116" y="148">Standardized</text>
                  <text x="240" y="148">yes</text>
                  <text x="84" y="164">YANG</text>
                  <text x="132" y="164">module</text>
                  <text x="168" y="164">?</text>
                  <text x="140" y="196">no</text>
                  <text x="104" y="244">Constrained</text>
                  <text x="200" y="244">yes</text>
                  <text x="248" y="244">SID</text>
                  <text x="288" y="244">range</text>
                  <text x="104" y="260">application</text>
                  <text x="160" y="260">?</text>
                  <text x="284" y="260">registration</text>
                  <text x="132" y="292">no</text>
                  <text x="76" y="340">YANG</text>
                  <text x="124" y="340">module</text>
                  <text x="240" y="340">SID</text>
                  <text x="296" y="340">sub-range</text>
                  <text x="84" y="356">update</text>
                  <text x="268" y="356">assignment</text>
                  <text x="244" y="436">".sid"</text>
                  <text x="292" y="436">file</text>
                  <text x="412" y="436">Rework</text>
                  <text x="460" y="436">YANG</text>
                  <text x="260" y="452">generation</text>
                  <text x="436" y="452">module</text>
                  <text x="344" y="516">yes</text>
                  <text x="252" y="532">Work</text>
                  <text x="284" y="532">in</text>
                  <text x="268" y="548">progress</text>
                  <text x="292" y="580">no</text>
                  <text x="248" y="628">RFC</text>
                  <text x="332" y="628">no</text>
                  <text x="252" y="644">publication?</text>
                  <text x="216" y="676">yes</text>
                  <text x="228" y="724">IANA</text>
                  <text x="400" y="724">Third</text>
                  <text x="448" y="724">party</text>
                  <text x="228" y="740">registration</text>
                  <text x="428" y="740">registration</text>
                  <text x="236" y="820">[DONE]</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[
       +---------------+
 o     | Creation of a |
-+- -->| YANG module   |
/ \    +------+--------+
              |
              v
       .-------------.
      / Standardized  \     yes
      \ YANG module ? /------------+
       '-----+-------'             |
             |  no                 |
             v                     v
      .-------------.      +---------------+
+--> / Constrained   \ yes | SID range     |
|    \ application ? /---->| registration  |<--------+
|     '-----+-------'      +------+--------+         |
|           |  no                 |                  |
|           v                     v                  |
|    +---------------+    +---------------+          |
+----+ YANG module   |    | SID sub-range |          |
     | update        |    | assignment    |<---------+
     +---------------+    +-------+-------+          |
                                  |                  |
                                  v                  |
                         +---------------+    +------+------+
                         | ".sid" file   |    | Rework YANG |
                         | generation    |    |    module   |
                         +-------+-------+    +-------------+
                                 |                   ^
                                 v                   |
                           .----------.  yes         |
                          /  Work in   \ ------------+
                          \  progress  /
                           '----+-----'
                                |  no
                                v
                       .-------------.
                      /      RFC      \ no
                      \  publication? /--------------+
                       '------+------'               |
                         yes  |                      |
                              v                      v
                    +---------------+        +---------------+
                    |     IANA      |        | Third party   |
                    | registration  |        | registration  |
                    +-------+-------+        +-------+-------+
                            |                        |
                            +------------------------+
                            v
                          [DONE]
]]></artwork>
          </artset>
        </figure>
      </section>
      <section anchor="sid-file-update">
        <name>".sid" File Update</name>
        <t>The following Activity diagram summarizes the update of a YANG module and its associated ".sid" file.</t>
        <figure anchor="fig-sid-file-update">
          <name>YANG and ".sid" file update</name>
          <artset>
            <artwork type="svg" align="left"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="672" width="520" viewBox="0 0 520 672" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px">
                <path d="M 16,48 L 16,64" fill="none" stroke="black"/>
                <path d="M 64,32 L 64,112" fill="none" stroke="black"/>
                <path d="M 120,112 L 120,152" fill="none" stroke="black"/>
                <path d="M 144,208 L 144,576" fill="none" stroke="black"/>
                <path d="M 192,32 L 192,112" fill="none" stroke="black"/>
                <path d="M 200,368 L 200,448" fill="none" stroke="black"/>
                <path d="M 264,192 L 264,232" fill="none" stroke="black"/>
                <path d="M 264,288 L 264,360" fill="none" stroke="black"/>
                <path d="M 264,448 L 264,488" fill="none" stroke="black"/>
                <path d="M 264,544 L 264,608" fill="none" stroke="black"/>
                <path d="M 328,368 L 328,448" fill="none" stroke="black"/>
                <path d="M 376,240 L 376,288" fill="none" stroke="black"/>
                <path d="M 376,496 L 376,544" fill="none" stroke="black"/>
                <path d="M 440,288 L 440,320" fill="none" stroke="black"/>
                <path d="M 440,544 L 440,576" fill="none" stroke="black"/>
                <path d="M 504,496 L 504,544" fill="none" stroke="black"/>
                <path d="M 512,240 L 512,288" fill="none" stroke="black"/>
                <path d="M 64,32 L 192,32" fill="none" stroke="black"/>
                <path d="M 8,64 L 24,64" fill="none" stroke="black"/>
                <path d="M 40,64 L 56,64" fill="none" stroke="black"/>
                <path d="M 64,112 L 192,112" fill="none" stroke="black"/>
                <path d="M 88,160 L 200,160" fill="none" stroke="black"/>
                <path d="M 216,192 L 264,192" fill="none" stroke="black"/>
                <path d="M 88,208 L 200,208" fill="none" stroke="black"/>
                <path d="M 208,240 L 320,240" fill="none" stroke="black"/>
                <path d="M 376,240 L 512,240" fill="none" stroke="black"/>
                <path d="M 336,272 L 368,272" fill="none" stroke="black"/>
                <path d="M 208,288 L 320,288" fill="none" stroke="black"/>
                <path d="M 376,288 L 512,288" fill="none" stroke="black"/>
                <path d="M 264,320 L 440,320" fill="none" stroke="black"/>
                <path d="M 200,368 L 328,368" fill="none" stroke="black"/>
                <path d="M 200,448 L 328,448" fill="none" stroke="black"/>
                <path d="M 208,496 L 320,496" fill="none" stroke="black"/>
                <path d="M 376,496 L 504,496" fill="none" stroke="black"/>
                <path d="M 336,528 L 368,528" fill="none" stroke="black"/>
                <path d="M 208,544 L 320,544" fill="none" stroke="black"/>
                <path d="M 376,544 L 504,544" fill="none" stroke="black"/>
                <path d="M 144,576 L 440,576" fill="none" stroke="black"/>
                <path d="M 196,520 L 208,544" fill="none" stroke="black"/>
                <path d="M 16,64 L 24,80" fill="none" stroke="black"/>
                <path d="M 76,184 L 88,208" fill="none" stroke="black"/>
                <path d="M 196,264 L 208,288" fill="none" stroke="black"/>
                <path d="M 320,496 L 332,520" fill="none" stroke="black"/>
                <path d="M 200,160 L 212,184" fill="none" stroke="black"/>
                <path d="M 320,240 L 332,264" fill="none" stroke="black"/>
                <path d="M 8,80 L 16,64" fill="none" stroke="black"/>
                <path d="M 76,184 L 88,160" fill="none" stroke="black"/>
                <path d="M 200,208 L 212,184" fill="none" stroke="black"/>
                <path d="M 196,264 L 208,240" fill="none" stroke="black"/>
                <path d="M 196,520 L 208,496" fill="none" stroke="black"/>
                <path d="M 320,288 L 332,264" fill="none" stroke="black"/>
                <path d="M 320,544 L 332,520" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="376,528 364,522.4 364,533.6 " fill="black" transform="rotate(0,368,528)"/>
                <polygon class="arrowhead" points="376,272 364,266.4 364,277.6 " fill="black" transform="rotate(0,368,272)"/>
                <polygon class="arrowhead" points="272,608 260,602.4 260,613.6 " fill="black" transform="rotate(90,264,608)"/>
                <polygon class="arrowhead" points="272,488 260,482.4 260,493.6 " fill="black" transform="rotate(90,264,488)"/>
                <polygon class="arrowhead" points="272,360 260,354.4 260,365.6 " fill="black" transform="rotate(90,264,360)"/>
                <polygon class="arrowhead" points="272,232 260,226.4 260,237.6 " fill="black" transform="rotate(90,264,232)"/>
                <polygon class="arrowhead" points="128,152 116,146.4 116,157.6 " fill="black" transform="rotate(90,120,152)"/>
                <polygon class="arrowhead" points="64,64 52,58.4 52,69.6 " fill="black" transform="rotate(0,56,64)"/>
                <circle cx="16" cy="48" r="6" class="opendot" fill="white" stroke="black"/>
                <g class="text">
                  <text x="100" y="52">Update</text>
                  <text x="140" y="52">of</text>
                  <text x="168" y="52">the</text>
                  <text x="92" y="68">YANG</text>
                  <text x="140" y="68">module</text>
                  <text x="84" y="84">or</text>
                  <text x="140" y="84">include(s)</text>
                  <text x="84" y="100">or</text>
                  <text x="136" y="100">import(s)</text>
                  <text x="112" y="180">New</text>
                  <text x="152" y="180">items</text>
                  <text x="232" y="180">yes</text>
                  <text x="128" y="196">created</text>
                  <text x="176" y="196">?</text>
                  <text x="172" y="228">no</text>
                  <text x="232" y="260">SID</text>
                  <text x="272" y="260">range</text>
                  <text x="352" y="260">yes</text>
                  <text x="408" y="260">Extra</text>
                  <text x="472" y="260">sub-range</text>
                  <text x="256" y="276">exhausted</text>
                  <text x="304" y="276">?</text>
                  <text x="428" y="276">assignment</text>
                  <text x="292" y="308">no</text>
                  <text x="236" y="388">".sid"</text>
                  <text x="284" y="388">file</text>
                  <text x="236" y="404">update</text>
                  <text x="288" y="404">based</text>
                  <text x="220" y="420">on</text>
                  <text x="268" y="420">previous</text>
                  <text x="236" y="436">".sid"</text>
                  <text x="284" y="436">file</text>
                  <text x="252" y="516">Publicly</text>
                  <text x="352" y="516">yes</text>
                  <text x="404" y="516">YANG</text>
                  <text x="452" y="516">module</text>
                  <text x="256" y="532">available</text>
                  <text x="304" y="532">?</text>
                  <text x="436" y="532">registration</text>
                  <text x="284" y="564">no</text>
                  <text x="268" y="628">[DONE]</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[
        +---------------+
  o     | Update of the |
 -+- -->| YANG module   |
 / \    | or include(s) |
        | or import(s)  |
        +------+--------+
               |
               v
           .-------------.
          /  New items    \ yes
          \  created  ?   /------+
           '------+------'       |
                  |  no          v
                  |       .-------------.      +----------------+
                  |      /  SID range    \ yes | Extra sub-range|
                  |      \  exhausted ?  /---->| assignment     |
                  |       '------+------'      +-------+--------+
                  |              |  no                 |
                  |              +---------------------+
                  |              |
                  |              v
                  |      +---------------+
                  |      | ".sid" file   |
                  |      | update based  |
                  |      | on previous   |
                  |      | ".sid" file   |
                  |      +-------+-------+
                  |              |
                  |              v
                  |       .-------------.      +---------------+
                  |      /  Publicly     \ yes | YANG module   |
                  |      \  available ?  /---->| registration  |
                  |       '------+------'      +-------+-------+
                  |              | no                  |
                  +--------------+---------------------+
                                 |
                                 v
                               [DONE]

]]></artwork>
          </artset>
        </figure>
      </section>
    </section>
    <section anchor="keeping-a-sid-file-in-a-yang-instance-data-file">
      <name>Keeping a SID File in a YANG Instance Data file</name>
      <t><xref target="RFC9195"/> defines a format for "YANG Instance Data".
This essentially leads to an encapsulation of the instance data within
some metadata envelope.</t>
      <t>If a SID file needs to be stored in a YANG Instance Data file, this
can be achieved by embedding the value of the SID file as the value of the
<tt>content-data</tt> member in the following template, and copying over the
second-level members as indicated with the angle brackets:</t>
      <sourcecode type="yang-instance-data"><![CDATA[
{
  "ietf-yang-instance-data:instance-data-set": {
    "name": "<module-name>@<module-revision>.sid",
    "description":  ["<description>"],
    "content-schema": {
      "module": "ietf-sid-file@2023-10-23"
    },
    "content-data": {  <replace this object>
      "ietf-sid-file:sid-file" : {
        "module-name": ...
      }
    }
  }
}
]]></sourcecode>
      <t><cref anchor="rfced">RFC editor: Please replace the module date by the correct
one for the ietf-sid-file module.</cref></t>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The authors would like to thank <contact fullname="Andy Bierman"/>, <contact fullname="Michael Richardson"/>,
<contact fullname="Abhinav Somaraju"/>, <contact fullname="Peter van der Stok"/>, <contact fullname="Laurent Toutain"/> and
<contact fullname="Randy Turner"/> for their help during the development of this document and
their useful comments during the review process.
Special thanks go to the IESG members who supplied very useful
comments during the IESG processing phase, in particular to
<contact fullname="Benjamin Kaduk"/> and <contact fullname="Rob Wilton"/>.</t>
    </section>
    <section anchor="contributors" numbered="false" toc="include" removeInRFC="false">
      <name>Contributors</name>
      <contact initials="A." surname="Bierman" fullname="Andy Bierman">
        <organization>YumaWorks</organization>
        <address>
          <postal>
            <street>685 Cochran St.</street>
            <street>Suite #160</street>
            <city>Simi Valley</city>
            <region>CA</region>
            <code>93065</code>
            <country>USA</country>
          </postal>
          <email>andy@yumaworks.com</email>
        </address>
      </contact>
    </section>
  </back>
  <!-- ##markdown-source:
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
dFrRhg+i/w+4iu3D8h4BAA==

-->

</rfc>
