<?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-23" 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-23"/>
    <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="28"/>
    <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 (–23) addresses much of the IESG reviews.
It is intended to serve as a stable basis for the remaining
discussions with IANA and IESG about the registration process.</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 138?>

<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 of 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 aims at
having 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. --> in order 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
submodule(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-27.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 Revised BSD License set
     forth in Section 4.c of the IETF Trust's Legal Provisions
     Relating to IETF Documents
     (https://trustee.ietf.org/license-info).

     This version of this YANG module is part of RFC 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-27 {
    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 security and privacy considerations in Sections <xref target="I-D.bormann-t2trg-deref-id" section="5" sectionFormat="bare"/> and <xref target="I-D.bormann-t2trg-deref-id" section="6" sectionFormat="bare"/> of <xref 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 provide or refer to ".sid" files in a way that
meets the security objective of data integrity for these files (see
also <xref target="security-considerations"/>).</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">https://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 subdivided 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 ranges of 1000 to 59,999 (size 59,000) and 100,000 to 299,999 (size 200,000) are 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 300,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">200,000</td>
                <td align="left">RFC Required</td>
              </tr>
              <tr>
                <td align="left">300,000</td>
                <td align="left">700,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 (<xref section="2" sectionFormat="of" target="BCP100"/>).</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 mailing lists of any
other working groups concerned.</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><xref target="BCP100"/> defines a time limit for the validity of Early Allocations,
after which they expire unless they are renewed.  <xref target="BCP100"/> also says:</t>
          <blockquote cite="https://www.rfc-editor.org/rfc/rfc7120.html#section-3.3" quotedFrom="RFC7120 (BCP100), Section 3.3">
            <t>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.</t>
          </blockquote>
        </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>
        <reference anchor="BCP100">
          <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>
        <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 1321?>

<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-27"
    },
    "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:
H4sIAAAAAAAAA719aXobR5bg/zxFNPTNkJQBkAQXSZTtMrXYrR5tI8rtdtuu
7gQQILMEZKIyE6RgSfPNHeYC/WNO0nOTOcm8NZZEAqRscfhVWSSQGfEi4sXb
l16vl1R1mo//LZ0WuT0xdbmwSTYv6beqHuztPdgbJONilKcz+HpcppO6l9l6
0hsVpe1V2bg3TWtb1Umd1VN44ufTlz+Ys9GFnaXmWW1nJnti8zqbZLY02/zl
syc7SVra9MSczufTbJTWWZFXBqAwb2w67b3NZtacwgNmOy3rneTq/MQ8y2tb
5rY2T/PzLLe2zPJz8zat3pnvi3Jkk3dXJ+bxo1dvEhjtxFT1OBnBmDavFpUs
qloMZ1lVwVT1cg6APnv69vtknp0kBh4vsxG8trW01Rb8XRej6I+xndcX8Mkh
/l0tZ6WdVP6Bqijr+JNRMZun4YAwt/8sL7aS5NLmC4tzn5fFYg6wA7R1mcLS
YBOenr2dLKaw1MusLPIZ7F8FT87SbHpicNu/wwPoF+U5vp/VF4shf967Ot9d
pvl5bzQsyiRJF/VFUZ4kPVMWeDR2nNXwuTFZDsC+6Jt/hv/ZbDq1dW3hYz7i
Fxkc3jT6AmY6MW9L+CBL89q8tPVVUb6r4FBGfd4+a2Flx/t75s3CmvHCPF+8
t7NhsSAQR8UYxv2nwT+ZwT8P8O+sXp6YH8o0Hy7hz9Kew6GcmP++sEM7oucX
eV3CI4/TPB2n8Mn8gpCz89X+4dHewb2jvaOj4w58bnlPZgRy/1JB/q5WWPuw
7WvWf9o3r+F/dlpcurWfTu17QENAVf2cln46ejfNimCl+/sH905NSodoxrYy
jy/S2bwyj6ZpPqrckrcOjo7297bckh/bqiry3pm9zM5zGyz9UWnrlD9yi/8e
9mdk/SLT71IAow9wrKyHgX92mS6nBUBelx70H4rifGrN2VVW/27LKd6xH2bD
fwzW8gjmGVewgfk7iyhYVRbWt+cWcX9vzx/avy7gplwEkLsPHNzBVB74jGCb
E2jfnRNMcjQM++O0rGqbm0dFOUvzXKH/Mc8ubVll9f/53zVuElwF8/ZfnwXQ
vy6qepKOLszBwd7h4Z4D9ElvcP/g6IG8FML3g8UpliFWHT7oHQ72e4P9+73j
gweD/QC1Rumw+K7+PaPb5sDFO5LCJXmD/5ZjOFSF+AzRZwoTmLNiUl8BmTM/
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
72RLcLPeFEPzUzatacP7yf8DlPK2dhkhAQA=

-->

</rfc>
