<?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.39 (Ruby 3.2.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-ivy-network-inventory-yang-18" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.33.0 -->
  <front>
    <title abbrev="Network Inventory YANG">A Base YANG Data Model for Network Inventory</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-ivy-network-inventory-yang-18"/>
    <author initials="C." surname="Yu" fullname="Chaode Yu">
      <organization>Huawei Technologies</organization>
      <address>
        <email>yuchaode@huawei.com</email>
      </address>
    </author>
    <author initials="S." surname="Belotti" fullname="Sergio Belotti">
      <organization>Nokia</organization>
      <address>
        <email>sergio.belotti@nokia.com</email>
      </address>
    </author>
    <author initials="J.-F." surname="Bouquier" fullname="Jean-Francois Bouquier">
      <organization>Vodafone</organization>
      <address>
        <email>jeff.bouquier@vodafone.com</email>
      </address>
    </author>
    <author initials="F." surname="Peruzzini" fullname="Fabio Peruzzini">
      <organization>FiberCop</organization>
      <address>
        <email>fabio.peruzzini@fibercop.com</email>
      </address>
    </author>
    <author initials="P." surname="Bedard" fullname="Phil Bedard">
      <organization>Cisco</organization>
      <address>
        <email>phbedard@cisco.com</email>
      </address>
    </author>
    <date year="2026" month="May" day="27"/>
    <area>Operations and Management</area>
    <workgroup>IVY Working Group</workgroup>
    <keyword>next generation</keyword>
    <keyword>unicorn</keyword>
    <keyword>sparkling distributed ledger</keyword>
    <abstract>
      <?line 112?>

<t>This document defines a base YANG data model for reporting network inventory. The scope of this base model is set to
be application- and technology-agnostic. The base data model can be augmented with application- and technology-specific details.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://ietf-ivy-wg.github.io/network-inventory-yang/draft-ietf-ivy-network-inventory-yang.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-ivy-network-inventory-yang/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/ietf-ivy-wg/network-inventory-yang"/>.</t>
    </note>
  </front>
  <middle>
    <?line 117?>

<section anchor="intro">
      <name>Introduction</name>
      <t>This document defines a base YANG data model for reporting network inventory
that is application- and technology-agnostic.  The
base data model can be augmented to describe application- and technology-specific information.
Please note that the usage of term "network inventory", in the context of this document, is to indicate that it is
describing "network-wide" scope inventory information.</t>
      <t>Network Inventory is a collection of data for network devices and their components managed by a specific management system.</t>
      <t>Network inventory management is a fundamental functional block in the overall network
management which was specified many years ago.
Network inventory management is a critical component of network management
for ensuring that the network is well-planned (e.g., identify assets
to upgrade or to decommission), remains healthy (e.g., auditing to
identify faulty elements), and is maintained appropriately to meet
the performance objectives.
Also, network inventory management allows operators to keep track of which devices are deployed in their networks, including relevant embedded software and hardware versions.</t>
      <t>Exposing standard interfaces to retrieve network element components as maintained in an inventory are key enablers for many applications. For example, <xref target="I-D.ietf-teas-actn-poi-applicability"/> identifies a gap about the lack of YANG data models that could be used at Abstraction and Control of TE Networks (ACTN) Multi-Domain Service Coordinator-Provisioning Network Controller Interface (MPI) level to report whole or partial network hardware inventory information available at domain controller level towards
upper layer systems (e.g., Multi-Domain Service Coordinator (MDSC) or Operations Support Systems (OSS) layers).</t>
      <t>It is key for operators to coordinate with the industry towards the use of a
standard YANG data model for Network Inventory data instead
of using vendors' proprietary APIs.</t>
      <t><xref target="RFC8348"/> defines a YANG data model for the management of the hardware on a single server and therefore it is more applicable to the domain controller towards the network elements rather than at the northbound interface of a network controller (e.g., toward an application or another hierarchical network controller). However, the YANG data model defined in <xref target="RFC8348"/> has been used as a reference for defining the YANG network inventory data model presented in this document.</t>
      <t>Per the definition of <xref target="RFC8309"/> and <xref target="RFC8969"/>, the YANG data model defined in <xref target="RFC8348"/> is a device model while the YANG data model defined in this document is a network model.</t>
      <t>As outlined in <xref target="operational"/>, the network inventory provides a read-only perspective of the actual inventory data that a network controller knows of what it is actually installed within the network. Therefore, other inventory data (e.g., spare or inactive assets) are outside the scope of this model.</t>
      <t>The distinction between a temporarily unreachable network element and one that has been removed from the network is outside the scope of this document and depends on the discovery mechanism used by the controller.</t>
      <t>As outlined in <xref target="overview"/>, the base inventory YANG data model defined in this document supports only physical network elements but generalizes the network element definition to allow supporting other types of network elements through proper augmentations.</t>
      <t>This document defines one YANG module "ietf-network-inventory" in <xref target="ni-yang"/>.</t>
      <t>This base data model is application- and technology-agnostic (that is, valid for IP/MPLS, optical, and
microwave networks as well as optical local loops, access networks, core networks, data centers, etc.) and can be augmented to
include required application- and technology-specific inventory details together with specific hardware or software component's attributes.</t>
      <t>The YANG data model defined in the document is scoped to cover the common use cases for Inventory but at network-wide level, covering both hardware and base software information.</t>
      <t>The YANG data model defined in this document conforms to the Network Management Datastore Architecture <xref target="RFC8342"/>.</t>
      <section anchor="editorial-note-to-be-removed-by-rfc-editor">
        <name>Editorial Note (To be removed by RFC Editor)</name>
        <ul empty="true">
          <li>
            <t>Note to the RFC Editor: This section is to be removed prior to publication.</t>
          </li>
        </ul>
        <t>This document contains placeholder values that need to be replaced
with finalized values at the time of publication.  This note
summarizes all of the substitutions that are needed.</t>
        <t>Please apply the following replacements:</t>
        <ul spacing="normal">
          <li>
            <t>XXXX --&gt; the assigned RFC number for this I-D</t>
          </li>
          <li>
            <t>2026-05-27 --&gt; the actual date of the publication of this document</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="terminology-and-notations">
      <name>Terminology and Notations</name>
      <section anchor="requirements-notations">
        <name>Requirements Notations</name>
        <t>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 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.
<?line -6?>
        </t>
      </section>
      <section anchor="terminology">
        <name>Terminology</name>
        <t>The following terms are defined in <xref target="RFC7950"/> and are not redefined here:</t>
        <ul spacing="normal">
          <li>
            <t>server</t>
          </li>
          <li>
            <t>augment</t>
          </li>
          <li>
            <t>data model</t>
          </li>
          <li>
            <t>data node</t>
          </li>
        </ul>
        <t>The following terms are defined in <xref target="RFC6241"/> and are not redefined here:</t>
        <ul spacing="normal">
          <li>
            <t>state data</t>
          </li>
        </ul>
        <t>The following terms are defined in <xref target="RFC8453"/> and are not redefined here:</t>
        <ul spacing="normal">
          <li>
            <t>Abstraction and Control of TE Networks (ACTN)</t>
          </li>
          <li>
            <t>Multi-Domain Service Coordinator (MDSC)</t>
          </li>
          <li>
            <t>Provisioning Network Controller (PNC)</t>
          </li>
          <li>
            <t>MDSC-PNC Interface (MPI)</t>
          </li>
        </ul>
        <t>The following terms are defined in the description statements of the corresponding YANG identities, defined in <xref target="IANA_HW_YANG"/>, and are not redefined here:</t>
        <ul spacing="normal">
          <li>
            <t>backplane</t>
          </li>
          <li>
            <t>battery</t>
          </li>
          <li>
            <t>cpu</t>
          </li>
          <li>
            <t>fan</t>
          </li>
          <li>
            <t>module</t>
          </li>
          <li>
            <t>power supply</t>
          </li>
          <li>
            <t>sensor</t>
          </li>
          <li>
            <t>stack</t>
          </li>
          <li>
            <t>storage device</t>
          </li>
        </ul>
        <t>Also, the document makes use of the following terms:</t>
        <dl>
          <dt>Chassis:</dt>
          <dd>
            <t>A field replaceable equipment with a particular structural format and dimensions.
A chassis can, but does not need to, include spaces (called slots) to take cards.</t>
          </dd>
          <dt/>
          <dd>
            <t>Elsewhere, a chassis can be called shelf, sub-rack, stand-alone unit, etc.</t>
          </dd>
          <dt>Port:</dt>
          <dd>
            <t>A component where networking traffic can be received and/or transmitted, e.g., by attaching networking cables.</t>
          </dd>
          <dt/>
          <dd>
            <t>In case of pluggable ports, the port may be empty when no pluggable module is plugged in.</t>
          </dd>
          <dt>Network Inventory:</dt>
          <dd>
            <t>A collection of data for network elements and their components with network-wide scope, managed by a specific management system.</t>
          </dd>
          <dt>Physical Network Element:</dt>
          <dd>
            <t>An implementation or application specific group of components (e.g., hardware components).</t>
          </dd>
          <dt>Network Element:</dt>
          <dd>
            <t>The generalization of the physical network element definition.</t>
          </dd>
          <dt>Hardware Component:</dt>
          <dd>
            <t>The generalization of the hardware components defined in <xref target="IANA_HW_YANG"/> (e.g., backplane, battery, container, central processing unit (CPU), chassis, fan, module, port, power supply, sensor, stack, and storage device components).</t>
          </dd>
          <dt/>
          <dd>
            <t>The list of hardware components can be extended in future versions of <xref target="IANA_ENTITY_MIB"/> (and, consequently, of (<xref target="IANA_HW_YANG"/>).</t>
          </dd>
          <dt>Component:</dt>
          <dd>
            <t>The generalization of the hardware component definition to include other inventory objects which can be managed, from an inventory perspective, like hardware components.</t>
          </dd>
          <dt>Card:</dt>
          <dd>
            <t>Pluggable equipment with a particular structural format and dimensions which can be inserted into one or more slots (or sub-slots). A card can have spaces (called sub-slots) to take other cards.</t>
          </dd>
          <dt/>
          <dd>
            <t>Elsewhere, a card can be called board, module, circuit pack, etc..</t>
          </dd>
          <dt>Slot:</dt>
          <dd>
            <t>A space in a chassis that can be equipped with one card, which may be chosen from a limited range of types of cards. A slot can be subdivided into smaller spaces that can also be part of a Card (called sub-slots).</t>
          </dd>
          <dt>Container:</dt>
          <dd>
            <t>A hardware component class that is capable of containing one or more removable physical entities (e.g., a slot in a chassis is containing a board).</t>
          </dd>
        </dl>
      </section>
      <section anchor="tree-diagrams">
        <name>Tree Diagrams</name>
        <t>The meanings of the symbols in the YANG tree diagrams are defined in <xref target="RFC8340"/>.</t>
      </section>
      <section anchor="yang-prefixes">
        <name>YANG Prefixes</name>
        <t><xref target="tab-prefixes"/> list the prefixes of the modules that are used in this document.</t>
        <table anchor="tab-prefixes">
          <name>Prefixes and corresponding YANG modules</name>
          <thead>
            <tr>
              <th align="left">Prefix</th>
              <th align="left">YANG Module</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">inet</td>
              <td align="left">ietf-inet-types</td>
              <td align="left">
                <xref section="4" sectionFormat="of" target="RFC9911"/></td>
            </tr>
            <tr>
              <td align="left">yang</td>
              <td align="left">ietf-yang-types</td>
              <td align="left">
                <xref section="3" sectionFormat="of" target="RFC9911"/></td>
            </tr>
            <tr>
              <td align="left">ianahw</td>
              <td align="left">iana-hardware</td>
              <td align="left">
                <xref target="IANA_HW_YANG"/></td>
            </tr>
            <tr>
              <td align="left">nwi</td>
              <td align="left">ietf-network-inventory</td>
              <td align="left">RFC XXXX</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="artwork-folding">
        <name>Artwork folding</name>
        <t>This document uses artwork folding <xref target="RFC8792"/> for better formatting.</t>
      </section>
    </section>
    <section anchor="overview">
      <name>YANG Data Model for Network Inventory Overview</name>
      <t>The base network inventory model, defined in this document, provides a list of network elements and of network element components.</t>
      <t>The network-inventory top level container has been defined to support reporting other types of network inventory objects, besides the network elements and network element components.</t>
      <t>These additional types of network inventory objects can be defined, together with the associated YANG data model and the rationale for managing them as part of the network inventory, in other documents providing application- and technology-specific companion augmentation data models, such as
<xref target="I-D.ietf-ivy-network-inventory-location"/>.</t>
      <t>The network element definition is generalized to support physical
network elements and other types of components' groups that can be managed as physical network elements from an
inventory perspective.</t>
      <t>Physical network elements are usually devices such as hosts, gateways, terminal servers, and the like, which have management agents responsible for performing the network management functions requested by the network management stations (<xref target="RFC1157"/>).</t>
      <t>The "ne-type" is defined as a YANG identity to describe the type of the network element. This document defines only the "physical-network-element" identity.</t>
      <t>Other types of network elements can be defined in other documents, together with the associated YANG identity and the rationale for managing them as network elements from an inventory perspective.</t>
      <t>The component definition is also generalized to support any types of
component inventory objects that can be managed as hardware components from an inventory perspective.</t>
      <t>The data model for components defined in this document uses a list of components within each network element.</t>
      <t>Different types of components can be distinguished by the class of component. The component "class" is defined as a union between the hardware class identity, defined in "iana-hardware", and the "non-hardware" identity, defined in this document.</t>
      <t>Other types of components can be defined in other documents, together with the associated YANG identity and the rationale for managing them as components from an inventory perspective.</t>
      <t>The identity definition of additional types of "ne-type" and "non-
hardware" identity of component are outside the scope of this
document and could be defined in application- and technology-specific companion augmentation data models, such as
<xref target="I-D.ietf-ivy-network-inventory-software"/>.</t>
      <t>In <xref target="RFC8348"/>, rack, chassis, slot, sub-slot, board and port are defined as components of network elements with generic attributes.</t>
      <t>While <xref target="RFC8348"/> is used to manage the hardware of a single server (e.g., a network element), the Network Inventory YANG data model is used to retrieve the base inventory information that a controller discovers from all the network elements with network-wide scope under its control.</t>
      <t>However, the YANG data model defined in <xref target="RFC8348"/> has been used as a reference for defining the YANG network inventory data model. This approach can simplify the implementation of this inventory model when the controller uses the YANG data model defined in <xref target="RFC8348"/> to retrieve the hardware  from the network elements under its control.</t>
      <section anchor="common-attributes">
        <name>Common attributes for inventory object</name>
        <t>For all the inventory objects, there are some common attributes, such as:</t>
        <dl>
          <dt>uuid:</dt>
          <dd>
            <t>The Universally Unique Identifier (UUID) of the inventory object, assigned by the server. Such identifiers are widely implemented with systems and guaranteed to be globally unique.</t>
          </dd>
          <dt>name:</dt>
          <dd>
            <t>A human-interpretable label of the inventory object, provided by a network operator or by the server. It could also be present on a Graphical User Interface (GUI).</t>
          </dd>
          <dt>alias:</dt>
          <dd>
            <t>A human-interpretable label of the inventory object, provided by a network operator. It could also be present on a GUI instead as well as the name.</t>
          </dd>
          <dt>description:</dt>
          <dd>
            <t>A human-interpretable description of the inventory object, provided by a network operator or by the server. The description provides more detailed information to prompt users when performing maintenance operations etc.</t>
          </dd>
        </dl>
        <section anchor="common-attributes-for-network-elements-and-components">
          <name>Common attributes for network elements and components</name>
          <t>To be consistent with the component definition, some of the attributes defined in <xref target="RFC8348"/> for components are reused for network elements, such as:</t>
          <dl>
            <dt>mfg-name:</dt>
            <dd>
              <t>The name of the manufacturer of the entity (component or network element).</t>
            </dd>
            <dt>product-name:</dt>
            <dd>
              <t>The vendor-specific and human-interpretable string describing the entity (component or network element) type.</t>
            </dd>
            <dt/>
            <dd>
              <t>It is expected that vendors assign unique product names to different entities within the scope of the vendor.</t>
            </dd>
          </dl>
          <t>Other software-related attributes are defined in <xref target="sw-inventory"/> and applicable to network elements and components.</t>
        </section>
      </section>
      <section anchor="network-element">
        <name>Network Element</name>
        <t>In addition to the common attributes defined for network elements and components in <xref target="common-attributes"/>, the following attributes are defined for the network elements:</t>
        <dl>
          <dt>ne-id:</dt>
          <dd>
            <t>The identifier that uniquely identifies the network element (NE) within the network, assigned by the server since the network elements cannot guarantee that their local  identifier is unique within the network.</t>
          </dd>
          <dt/>
          <dd>
            <t>The ne-id should be assigned such that the same network element will always be identified through the same identifier, even if the network elements get disconnected from the network controller. Mechanisms to ensure this (e.g., checking the mfg-name, product-name, management IP address, physical location) are implementation specific and outside the scope of standardization.</t>
          </dd>
          <dt>ne-type:</dt>
          <dd>
            <t>The type of network element (e.g., physical network element). See <xref target="overview"/> for the definition of NE types.</t>
          </dd>
          <dt>product-rev:</dt>
          <dd>
            <t>A vendor-specific product revision string for the network-element.</t>
          </dd>
        </dl>
      </section>
      <section anchor="ne-component">
        <name>Components</name>
        <t>The YANG data model for network inventory mainly follows the same approach of <xref target="RFC8348"/> and reports the network hardware inventory as a list of components with different types (e.g., chassis, module, and port).</t>
        <t>In addition to the common attributes defined for network elements and components in <xref target="common-attributes"/>, the following attributes are defined for the components:</t>
        <dl>
          <dt>component-id:</dt>
          <dd>
            <t>The identifier that uniquely identifies the component within the NE. It can be assigned by the NE or by the server.</t>
          </dd>
          <dt>class:</dt>
          <dd>
            <t>The type of component (e.g., chassis, module, port). See <xref target="overview"/> for the definition of component types.</t>
          </dd>
          <dt>hardware-rev:</dt>
          <dd>
            <t>The vendor-specific hardware revision string for the component.</t>
          </dd>
          <dt/>
          <dd>
            <t>The preferred value is the hardware revision identifier actually printed on the component itself (if present).</t>
          </dd>
          <dt>mfg-date:</dt>
          <dd>
            <t>The date of manufacturing of the component.</t>
          </dd>
          <dt>part-number:</dt>
          <dd>
            <t>The vendor-specific part number of the component type.</t>
          </dd>
          <dt/>
          <dd>
            <t>It is expected that vendors assign unique part numbers to different component types within the scope of the vendor.</t>
          </dd>
          <dt/>
          <dd>
            <ul empty="true">
              <li>
                <t>Although the part number is often an alphanumeric string and not a number, this document uses this term since it is widely used and well known in the industry.</t>
              </li>
            </ul>
          </dd>
          <dt>serial-number:</dt>
          <dd>
            <t>The vendor-specific serial number of the component instance.</t>
          </dd>
          <dt/>
          <dd>
            <t>It is expected that vendors assign unique serial numbers to different component instances at least within the scope of the part-number.</t>
          </dd>
          <dt/>
          <dd>
            <ul empty="true">
              <li>
                <t>Although the serial number is often an alphanumeric string and not a number, this document uses this term since it is widely used and well known in the industry.</t>
              </li>
            </ul>
          </dd>
          <dt>asset-id:</dt>
          <dd>
            <t>An asset tracking identifier for the component, provided by a network operator.</t>
          </dd>
          <dt>is-fru:</dt>
          <dd>
            <t>Indicates whether or not a component is considered a 'field-replaceable unit' by the vendor.</t>
          </dd>
        </dl>
        <t>For state data like "admin-state", "oper-state", and so on, this document considers that they are related to device hardware management, not network inventory. Therefore, they are outside of the scope of this document. Same for the sensor-data, they should be defined in some other performance monitoring data models instead of the inventory data model.</t>
        <section anchor="hardware-components">
          <name>Hardware Components</name>
          <t>Other models (e.g., <xref target="TMF_SD2-20"/>) classifies the hardware components into two groups: holder group and equipment group. The holder group contains rack, chassis, slot, sub-slot while the equipment group contains network-element, board and port. This model, likewise <xref target="RFC8348"/>, does not follow this classification and manage all the hardware components without distinguishing between holder and equipment groups.</t>
          <t>See <xref target="port-examples"/>, <xref target="multi-chassis-examples"/>, and <xref target="non-modular-examples"/> for concrete hardware component examples.</t>
          <t><xref target="fig-hw-inventory-object-relationship"/> describes the relationship between typical inventory objects in a physical network element.</t>
          <figure anchor="fig-hw-inventory-object-relationship">
            <name>Relationship between typical inventory objects in physical network elements</name>
            <artset>
              <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="512" width="392" viewBox="0 0 392 512" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                  <path d="M 8,352 L 8,368" fill="none" stroke="black"/>
                  <path d="M 40,336 L 40,384" fill="none" stroke="black"/>
                  <path d="M 96,296 L 96,304" fill="none" stroke="black"/>
                  <path d="M 104,296 L 104,304" fill="none" stroke="black"/>
                  <path d="M 152,32 L 152,64" fill="none" stroke="black"/>
                  <path d="M 160,336 L 160,384" fill="none" stroke="black"/>
                  <path d="M 168,208 L 168,256" fill="none" stroke="black"/>
                  <path d="M 216,72 L 216,176" fill="none" stroke="black"/>
                  <path d="M 216,264 L 216,296" fill="none" stroke="black"/>
                  <path d="M 224,72 L 224,176" fill="none" stroke="black"/>
                  <path d="M 224,264 L 224,296" fill="none" stroke="black"/>
                  <path d="M 280,208 L 280,256" fill="none" stroke="black"/>
                  <path d="M 288,336 L 288,384" fill="none" stroke="black"/>
                  <path d="M 288,448 L 288,480" fill="none" stroke="black"/>
                  <path d="M 296,32 L 296,64" fill="none" stroke="black"/>
                  <path d="M 312,224 L 312,240" fill="none" stroke="black"/>
                  <path d="M 336,296 L 336,304" fill="none" stroke="black"/>
                  <path d="M 336,392 L 336,416" fill="none" stroke="black"/>
                  <path d="M 344,296 L 344,304" fill="none" stroke="black"/>
                  <path d="M 344,392 L 344,416" fill="none" stroke="black"/>
                  <path d="M 384,336 L 384,384" fill="none" stroke="black"/>
                  <path d="M 384,448 L 384,480" fill="none" stroke="black"/>
                  <path d="M 152,32 L 296,32" fill="none" stroke="black"/>
                  <path d="M 152,64 L 296,64" fill="none" stroke="black"/>
                  <path d="M 168,208 L 280,208" fill="none" stroke="black"/>
                  <path d="M 288,224 L 312,224" fill="none" stroke="black"/>
                  <path d="M 288,240 L 304,240" fill="none" stroke="black"/>
                  <path d="M 168,256 L 280,256" fill="none" stroke="black"/>
                  <path d="M 112,304 L 248,304" fill="none" stroke="black"/>
                  <path d="M 264,304 L 328,304" fill="none" stroke="black"/>
                  <path d="M 40,336 L 160,336" fill="none" stroke="black"/>
                  <path d="M 288,336 L 384,336" fill="none" stroke="black"/>
                  <path d="M 8,352 L 32,352" fill="none" stroke="black"/>
                  <path d="M 16,368 L 32,368" fill="none" stroke="black"/>
                  <path d="M 40,384 L 160,384" fill="none" stroke="black"/>
                  <path d="M 288,384 L 384,384" fill="none" stroke="black"/>
                  <path d="M 288,448 L 384,448" fill="none" stroke="black"/>
                  <path d="M 288,480 L 384,480" fill="none" stroke="black"/>
                  <path d="M 92,296 L 140,296" fill="none" stroke="black"/>
                  <path d="M 164,296 L 216,296" fill="none" stroke="black"/>
                  <path d="M 224,296 L 268,296" fill="none" stroke="black"/>
                  <path d="M 292,296 L 348,296" fill="none" stroke="black"/>
                  <polygon class="arrowhead" points="296,240 284,234.4 284,245.6" fill="black" transform="rotate(180,288,240)"/>
                  <polygon class="arrowhead" points="40,368 28,362.4 28,373.6" fill="black" transform="rotate(0,32,368)"/>
                  <g class="text">
                    <text x="192" y="52">network</text>
                    <text x="256" y="52">element</text>
                    <text x="240" y="132">1:M</text>
                    <text x="220" y="196">\/</text>
                    <text x="224" y="228">chassis</text>
                    <text x="152" y="292">1:N</text>
                    <text x="280" y="292">1:M</text>
                    <text x="100" y="324">\/</text>
                    <text x="340" y="324">\/</text>
                    <text x="100" y="356">slot</text>
                    <text x="336" y="356">board</text>
                    <text x="96" y="372">/sub-slot</text>
                    <text x="360" y="420">1:N</text>
                    <text x="340" y="436">\/</text>
                    <text x="340" y="468">port</text>
                  </g>
                </svg>
              </artwork>
              <artwork type="ascii-art"><![CDATA[
                            +-----------------+
                            | network element |
                            +-----------------+
                                    ||
                                    ||
                                    ||
                                    ||1:M
                                    ||
                                    ||
                                    ||
                                    \/
                              +-------------+
                              |   chassis   |---+
                              |             |<--|
                              +-------------+
                                    ||
                     ______1:N______||_____1:M_______
                     ||------------------ ---------||
                     \/                            \/
              +--------------+               +-----------+
          +---|     slot     |               |   board   |
          |-->|  /sub-slot   |               |           |
              +--------------+               +-----------+
                                                   ||
                                                   ||1:N
                                                   \/
                                             +-----------+
                                             |    port   |
                                             +-----------+
]]></artwork>
            </artset>
          </figure>
          <t>The "iana-hardware" module <xref target="IANA_HW_YANG"/> defines YANG identities for
the hardware component types in the IANA-maintained "IANA-ENTITY-MIB"
registry.</t>
          <t>Some of the definitions taken from <xref target="RFC8348"/> are based on the ENTITY-MIB <xref target="RFC6933"/>.</t>
          <t>Additional attributes of specific hardware, such as CPU,
storage, port, or power supply are defined in the hardware extension.</t>
        </section>
        <section anchor="sw-inventory">
          <name>Software Components</name>
          <t>Each instance of a network element or a component includes its own "software-rev" list which provides basic software attributes for each entity (network element and component).</t>
          <t>The scope of the list is to provide information about the software images intended to be running within the related entity.</t>
          <t>The model supports scenarios where multiple software modules can be images intended to be running within the entity. For example, on a network element an Operating System and an Application software modules can be intended to be running; in the same way, on a component like a circuit pack a boot-loader, a firmware
and one or more FPGA software modules can be intended to be running.</t>
          <t>For each software module, intended to be running, the name and version information is provided.</t>
          <t>The management of inactive/standby software
modules and of the software upgrade or downgrade life-cycle are outside the scope of the base inventory model and can be addressed in other models which augment the base inventory model such as the model under definition in <xref target="I-D.ietf-ivy-network-inventory-software"/>.</t>
          <t>The software and hardware components share the same attributes of the
component and have similar replaceable requirements. Generally, the
device also has other software data, for example, one or more
software patch information.</t>
          <t>The software components lifecycle (like activation, deactivation, installation, storage, removal, etc.) is outside the scope of this document and defined in other documents such as <xref target="I-D.ietf-ivy-network-inventory-software"/>.</t>
        </section>
      </section>
      <section anchor="changes-since-rfc-8348">
        <name>Changes Since RFC 8348</name>
        <t>This document re-defines some attributes listed in <xref target="RFC8348"/>, based on some integration experience for network inventory data.</t>
        <section anchor="part-number">
          <name>Part Number</name>
          <t>According to the description in <xref target="RFC8348"/>, the attribute named "model-name" under the component, is preferred to have a customer-visible part number value. "Model-name" is not straightforward to understand, and therefore, in this model the attribute is called "part-number".</t>
        </section>
        <section anchor="component-identifiers">
          <name>Component identifiers</name>
          <t>There are some use cases where the name of the components are assigned and changed by the operator. In these cases, the assigned names are also not guaranteed to be always unique.</t>
          <t>In order to support these use cases, this model is not aligned with <xref target="RFC8348"/> in defining the component name as the key for the component list.</t>
          <t>Instead, the name is defined as an optional attribute and the component-id is defined as the key for the component list (in alignment with the approach followed for the network-element list).</t>
        </section>
        <section anchor="parent-relative-position">
          <name>Parent relative position</name>
          <t>There are some use cases where the parent relative position is not reported as an integer but as a string.</t>
          <t>In order to support these use cases and allowing a straightforward match between the relative position definition in the device and in the network inventory, this model is defining the 'parent-rel-pos' data node as a string instead of as an integer.</t>
          <t>If the device reports the relative position as an integer, e.g., using the device model defined in <xref target="RFC8348"/>, the integer value reported by the device can be mapped into a string within the network inventory.</t>
        </section>
      </section>
    </section>
    <section anchor="ni-tree">
      <name>Network Inventory Tree Diagram</name>
      <t><xref target="fig-ni-tree"/> shows the tree diagram of the YANG data model defined in module "ietf-network-inventory" (<xref target="ni-yang"/>).</t>
      <figure anchor="fig-ni-tree">
        <name>Network inventory tree diagram</name>
        <artwork type="ascii-art" name="ietf-network-inventory.tree"><![CDATA[
module: ietf-network-inventory
  +--ro network-inventory
     +--ro network-elements
        +--ro network-element* [ne-id]
           +--ro ne-id           string
           +--ro ne-type?        identityref
           +--ro uuid?           yang:uuid
           +--ro name?           string
           +--ro alias?          string
           +--ro description?    string
           +--ro software-rev* [name]
           |  +--ro name        string
           |  +--ro revision?   string
           |  +--ro patch* [revision]
           |     +--ro revision    string
           +--ro mfg-name?       string
           +--ro product-name?   string
           +--ro product-rev?    string
           +--ro components
              +--ro component* [component-id]
                 +--ro component-id      string
                 +--ro class             union
                 +--ro uuid?             yang:uuid
                 +--ro name?             string
                 +--ro alias?            string
                 +--ro description?      string
                 +--ro software-rev* [name]
                 |  +--ro name        string
                 |  +--ro revision?   string
                 |  +--ro patch* [revision]
                 |     +--ro revision    string
                 +--ro mfg-name?         string
                 +--ro product-name?     string
                 +--ro hardware-rev?     string
                 +--ro mfg-date?         yang:date-and-time
                 +--ro part-number?      string
                 +--ro serial-number?    string
                 +--ro asset-id?         string
                 +--ro is-fru?           boolean
                 +--ro uri*              inet:uri
                 +--ro parent*
                 |       -> ../../component/component-id
                 +--ro parent-rel-pos?   string
                 +--ro is-main?          boolean
]]></artwork>
      </figure>
    </section>
    <section anchor="ni-yang">
      <name>YANG Data Model for Network Inventory</name>
      <figure anchor="fig-ni-yang">
        <name>Network inventory YANG module</name>
        <sourcecode type="yang" markers="true" name="ietf-network-inventory@2026-05-27.yang"><![CDATA[
module ietf-network-inventory {
  yang-version 1.1;
  namespace "urn:ietf:params:xml:ns:yang:ietf-network-inventory";
  prefix nwi;

  import iana-hardware {
    prefix ianahw;
    reference
      "https://www.iana.org/assignments/yang-parameters";
  }
  import ietf-yang-types {
    prefix yang;
    reference
      "RFC 9911: Common YANG Data Types";
  }
  import ietf-inet-types {
    prefix inet;
    reference
      "RFC 9911: Common YANG Data Types";
  }

  organization
    "IETF IVY Working Group";
  contact
    "WG Web:   <https://datatracker.ietf.org/wg/ivy/>
     WG List:  <mailto:ivy@ietf.org>

     Editor:   Chaode Yu
               <yuchaode@huawei.com>

     Editor:   Sergio Belotti
               <sergio.belotti@nokia.com>

     Editor:   Jean-Francois Bouquier
               <jeff.bouquier@vodafone.com>

     Editor:   Fabio Peruzzini
               <fabio.peruzzini@telecomitalia.it>

     Editor:   Phil Bedard
               <phbedard@cisco.com>";
  description
    "This module defines a base model for retrieving network
     inventory.

     The model fully conforms to the Network Management
     Datastore Architecture (NMDA).

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

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

     This version of this YANG module is part of RFC XXXX; 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.";

  revision 2026-05-27 {
    description
      "Initial version";
    reference
      "RFC XXXX: A YANG Data Model for Network Inventory.";
  }

  /*
   * Identities
   */

  identity non-hardware-component-class {
    description
      "Base identity for non hardware components (e.g., software
       components) in a managed device.";
  }

  identity ne-type {
    description
      "Base identity for network element (NE) types.";
  }

  identity ne-physical {
    base nwi:ne-type;
    description
      "A physical network element (NE). ";
  }

  /*
   * Types
   */

  typedef ne-ref {
    type leafref {
      path "/nwi:network-inventory/nwi:network-elements"
         + "/nwi:network-element/nwi:ne-id";
      require-instance false;
    }
    description
      "This type is intended to be used by data models that need to
       reference Network Element.";
  }

  /*
   * Groupings
   */

  grouping component-ref {
    description
      "This grouping is intended to be used by data models that need
       to reference a component within a Network Element.";
    leaf ne-ref {
      type nwi:ne-ref;
      description
        "The reference to the Network Element which contains the
         component to be referenced.";
    }
    leaf component-ref {
      type leafref {
        path "/nwi:network-inventory/nwi:network-elements/"
           + "nwi:network-element[nwi:ne-id=current()/../ne-ref]"
           + "/nwi:components/nwi:component/nwi:component-id";
        require-instance false;
      }
      description
        "The reference to the component.";
    }
  }

  grouping port-ref {
    description
      "This grouping is intended to be used by data models that need
       to reference a port component within a Network Element.";
    leaf ne-ref {
      type nwi:ne-ref;
      description
        "The reference to the Network Element which contains the
         port to be referenced.";
    }
    leaf port-ref {
      type leafref {
        path "/nwi:network-inventory/nwi:network-elements/"
           + "nwi:network-element[nwi:ne-id=current()/../ne-ref]"
           + "/nwi:components/nwi:component/nwi:component-id";
        require-instance false;
      }
      description
        "The reference to the port component.

         Note: the class of the referenced port component MUST be
         'ianahw:port' or a derived identity.";
    }
  }

  grouping basic-common-entity-attributes {
    description
      "The set of basic attributes which are common to all the
       entities (e.g., component, network elements, location, passive
       entities) defined in this module and in other inventory
       modules.";
    leaf uuid {
      type yang:uuid;
      description
        "The Universally Unique Identifier of the entity
         (e.g., component).";
    }
    leaf name {
      type string;
      description
        "The name of the  entity (e.g., component), as specified by
         a network operator, that provides a non-volatile 'handle'
         for the entity. The The network operator can specify a
         different value anytime during the entity lifetime.

         If no value is discovered, the server MAY set the value of
         this node to a locally unique value in the operational
         state.";
    }
    leaf alias {
      type string;
      description
        "The alias name of the entity (e.g., component). This alias
         name can be specified by a network operator.";
    }
    leaf description {
      type string;
      description
        "The textual description of the entity (e.g., component).";
    }
  }

  grouping ne-component-common-entity-attributes {
    description
      "The set of attributes which are common to all the entities
       (e.g., component, network elements) defined in this module.";
    uses basic-common-entity-attributes;
    list software-rev {
      key "name";
      description
        "The list of the software modules representing the software
         images intended to be running within the entity
         (e.g., component).";
      leaf name {
        type string;
        description
          "The vendor-specific name of the software module.";
      }
      leaf revision {
        type string;
        description
          "The vendor-specific revision string of the software
           module when not implicitly defined as part of the name of
           the software module.";
      }
      list patch {
        key "revision";
        description
          "The list of software patches configured to be active for
           the software module.";
        leaf revision {
          type string;
          description
            "The vendor-specific revision string of the software
             patch when not implicitly defined as part of the name or
             revision of the software module.";
        }
      }
    }
    leaf mfg-name {
      type string;
      description
        "The name of the manufacturer of this entity
         (e.g., component).";
    }
    leaf product-name {
      type string;
      description
        "The vendor-specific and human-interpretable string
         describing the entity (e.g., component) type. It is expected
         that vendors assign unique product names to different entity
         (e.g., component) types within the scope of the vendor.";
    }
  }

  grouping component-attributes {
    description
      "The set of common attributes of a component.

       This grouping is intended also to be re-used by data models
       that need to report the common attributes of a component.";
    leaf component-id {
      type string;
      description
        "An identifier that uniquely identifies the component
         in a node.";
    }
    leaf class {
      type union {
        type identityref {
          base ianahw:hardware-class;
        }
        type identityref {
          base nwi:non-hardware-component-class;
        }
      }
      mandatory true;
      description
        "The type of the component.";
    }
    uses ne-component-common-entity-attributes {
      refine "software-rev" {
        reference
          "RFC 6933: Entity MIB (Version 4) -
                     entPhysicalSoftwareRev";
      }
      refine "mfg-name" {
        description
          "The name of the manufacturer of this component.

           The preferred value is the manufacturer name
           string actually printed on the component itself
           (if present).

           Note that comparisons between instances of the
           'part-number', 'software-rev', and 'serial-number' nodes
           are only meaningful amongst components with the same value
           of 'mfg-name'.

           If the manufacturer name string associated with
           the component is unknown to the server, then this node is
           not instantiated.";
        reference
          "RFC 6933: Entity MIB (Version 4) -
                     entPhysicalMfgName";
      }
    }
    leaf hardware-rev {
      type string;
      description
        "The vendor-specific hardware revision string for the
         component.

         The preferred value is the hardware revision identifier
         actually printed on the component itself (if present).";
      reference
        "RFC 6933: Entity MIB (Version 4) - entPhysicalHardwareRev";
    }
    leaf mfg-date {
      type yang:date-and-time;
      description
        "The date of manufacturing of the component.";
      reference
        "RFC 6933: Entity MIB (Version 4) - entPhysicalMfgDate";
    }
    leaf part-number {
      type string;
      description
        "The vendor-specific part number of the component
         type. It is expected that vendors assign unique part
         numbers to different component types within the
         scope of the vendor.";
    }
    leaf serial-number {
      type string;
      description
        "The vendor-specific serial number of the component instance.

         It is expected that vendors assign unique serial numbers to
         different component instances within the scope of the
         'part-number'.";
    }
    leaf asset-id {
      type string;
      description
        "This node is an asset tracking identifier for the component,
         as specified by a network operator.

         A server implementation MAY map this leaf to the
         entPhysicalAssetID MIB object.  Such an
         implementation needs to use some mechanism to handle
         the differences in size and characters allowed
         between this leaf and entPhysicalAssetID.

         The definition of such a mechanism is outside the
         scope of this document.";
      reference
        "RFC 6933: Entity MIB (Version 4) -
                   entPhysicalAssetID";
    }
    leaf is-fru {
      type boolean;
      description
        "This node indicates whether or not this component is
         considered a 'field-replaceable unit' by the vendor.
         If this node contains the value 'true', then this
         component identifies a field-replaceable unit.
         For all components that are permanently contained
         within a field-replaceable unit, the value 'false'
         should be returned for this node.";
      reference
        "RFC 6933: Entity MIB (Version 4) -
                   entPhysicalIsFRU";
    }
    leaf-list uri {
      type inet:uri;
      description
        "This node contains identification information about
         the component.";
      reference
        "RFC 6933: Entity MIB (Version 4) - entPhysicalUris";
    }
  }

  /* 
   * Data Nodes
   */

  container network-inventory {
    config false;
    description
      "Top-level container for network inventory.";
    container network-elements {
      description
        "The top-level container for the list of network elements
         within the network.";
      list network-element {
        key "ne-id";
        description
          "The list of network elements within the network.";
        leaf ne-id {
          type string;
          description
            "An identifier that uniquely identifies the NE in
             a network.";
        }
        leaf ne-type {
          type identityref {
            base nwi:ne-type;
          }
          default "nwi:ne-physical";
          description
            "The network element type.";
          reference
            "RFC XXXX: A YANG Data Model for Network Inventory,
                       Section 3.";
        }
        uses ne-component-common-entity-attributes;
        leaf product-rev {
          type string;
          description
            "The vendor-specific product revision string for the
             network-element.";
        }
        container components {
          description
            "The top-level container for the list of components
             within a network element.";
          list component {
            key "component-id";
            description
              "The list of components within a network element.";
            uses component-attributes;
            leaf-list parent {
              type leafref {
                path "../../component/component-id";
                require-instance false;
              }
              description
                "The identifiers of all the components that
                 physically contain this component.

                 If this list is empty, this component is not
                 contained in any other component but it is contained
                 in the network-element.";
              reference
                "RFC 6933: Entity MIB (Version 4) -
                           entPhysicalContainedIn";
            }
            leaf parent-rel-pos {
              when 'count(../parent) < 2' {
                description
                  "This data node is applicable only when this
                   component is contained in the network-element or
                   in only one parent component.";
              }
              type string;
              description
                "The relative position with respect to the parent
                 component among all the sibling components.

                 The format of this string is
                 implementation-specific. When mapping from RFC 6933,
                 the entPhysicalParentRelPos integer value SHOULD be
                 encoded as an integer string.";
              reference
                "RFC 6933: Entity MIB (Version 4) -
                           entPhysicalParentRelPos";
            }
            leaf is-main {
              when "derived-from-or-self(../nwi:class, "
                 + "'ianahw:chassis')";
              type boolean;
              description
                "This node indicates whether the chassis is taking or
                 not the 'main' role.

                 This node is applicable only to scenarios where the
                 network element contains chassis components which
                 can take or not the 'main' role (e.g., multi-chassis
                 network elements).

                 It is therefore omitted in scenarios where the
                 network element does not contain chassis components
                 which can can take or not the 'main' role
                 (e.g., single-chassis network elements).";
            }
          }
        }
      }
    }
  }
}
]]></sourcecode>
      </figure>
    </section>
    <section anchor="operational">
      <name>Operational Considerations</name>
      <t>The network inventory YANG data model defined in the document is intended to report the actual inventory data that a network controller knows of the network elements and components actually installed within the network. Therefore, this data model provides a read-only perspective of the network inventory information.</t>
      <t>It is worth noting that some information reported within this YANG data model can be configured on the device through mechanisms which are outside the scope of this document.</t>
      <t>As outlined in <xref target="intro"/>, per the definition of <xref target="RFC8309"/> and <xref target="RFC8969"/>, the network inventory model is a network model.</t>
      <t>This information can be provided by a network controller to a higher level hierarchical network controller, to an Inventory OSS or to any other type of application which needs to discover the network inventory information.</t>
      <t>For example, in the context of ACTN, the network inventory YANG data model can be used at the MPI interfaces, as defined in <xref target="RFC8453"/>, or on an interface, not defined in <xref target="RFC8453"/> between the MDSC and the Inventory OSS.</t>
      <t>The information in the model is discovered by the controller through mechanisms which are outside the scope of this document.</t>
      <t>Note that distinguishing between the cases where a NE is unreachable versus decommissioned depends on the mechanism used for discovering this information and outside the scope of this document.</t>
      <t>For example, the network controller can collect this information by reading it from the devices using the device model supported by the devices. This model does not constraint the device models used on the device: the YANG data model defined in <xref target="RFC8348"/> is an option but other options (e.g., vendor specific interfaces or YANG data models) are also allowed. In case some information is not provided by the device, the network controller SHALL omit this information unless this information is known by other sources of information (e.g., through local configuration within the network controller).</t>
      <t>In case of hierarchical controllers, a hierarchical network controller can also collect the network inventory information from its lower level network controllers using this YANG data model (or other mechanisms which are outside the scope of this document) and report the combined network inventory information to a higher level network controller, to an Inventory OSS or to any other type of application which needs to discover the network inventory information.</t>
      <t>When used in brownfield scenarios, it is worth noting that existing deployments are based on proprietary Inventory OSS and that the migration path is highly dependent on the specific proprietary solution. Therefore, the migration processes are operator dependent: it is expected that the deployment of the standard YANG-based solution on the controllers will take some time and its integration with existing Inventory OSSes will also take longer time. In a longer term, the network controllers could provide inventory information, using this YANG data model, also to next generation OSSes.</t>
      <t>When this model is used, the source of truth for the inventory data in the scope of this model is the network controller providing this data. Some legacy inventory information (e.g., inactive assets, warehouse spares, procurement or commercial metadata) fall outside the scope of the base model.</t>
    </section>
    <section anchor="security">
      <name>Security Considerations</name>
      <t>This section is modeled after the template described in <xref section="3.7" sectionFormat="of" target="RFC9907"/>.</t>
      <t>The "ietf-network-inventory" YANG module defines a data model that is
designed to be accessed via YANG-based management protocols, such as
NETCONF <xref target="RFC6241"/> and RESTCONF <xref target="RFC8040"/>. These YANG-based management
protocols (1) have to use a secure transport layer (e.g., SSH <xref target="RFC4252"/>, TLS <xref target="RFC8446"/>,
and QUIC <xref target="RFC9000"/>) and (2) have to use mutual authentication.</t>
      <t>The Network Configuration Access Control Model (NACM) <xref target="RFC8341"/>
provides the means to restrict access for particular NETCONF or
RESTCONF users to a preconfigured subset of all available NETCONF or
RESTCONF protocol operations and content.</t>
      <t>Some of the readable data nodes in this YANG module may be considered
sensitive or vulnerable in some network environments.  It is thus
important to control read access (e.g., via get, get-config, or
notification) to these data nodes.</t>
      <t>Specifically, the following subtrees and data nodes have particular sensitivities/vulnerabilities:</t>
      <ul spacing="normal">
        <li>
          <t>"/nwi:network-elements"</t>
        </li>
      </ul>
      <ul empty="true">
        <li>
          <t>This subtree reports the inventory information for all the network elements and their hardware components deployed within the network as well as of the software modules being active on these network elements and components. Unauthorized access to this subtree can disclose this information. A malicious attacker can use this information to perform targeted attacks to network elements, hardware components or software modules with known vulnerabilities.</t>
        </li>
      </ul>
      <ul empty="true">
        <li>
          <t>In large networks, the massive volume of reported data can cause scalability issues, as reported in <xref target="scalability"/>. A malicious attacker could leverage this to cause  resource exhaustion.</t>
        </li>
      </ul>
      <t>Modules that use the groupings that are defined in this document
should identify the corresponding security considerations. For example, reusing the 'component-attributes' grouping may expose sensitive information.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>IANA is requested to register the following URI in the "ns"
registry within the "IETF XML Registry" group <xref target="RFC3688"/>:</t>
      <artwork><![CDATA[
      URI: urn:ietf:params:xml:ns:yang:ietf-network-inventory
      Registrant Contact: The IESG
      XML: N/A; the requested URI is an XML namespace.
]]></artwork>
      <t>IANA is requested to register the following YANG module in the "YANG
Module Names" registry <xref target="RFC6020"/> within the "YANG Parameters"
registry group.</t>
      <artwork><![CDATA[
      name:         ietf-network-inventory
      namespace:    urn:ietf:params:xml:ns:yang:ietf-network-inventory
      prefix:       nwi
      reference:    RFC XXXX
]]></artwork>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="IANA_ENTITY_MIB" target="https://www.iana.org/assignments/ianaentity-mib/ianaentity-mib.xhtml">
          <front>
            <title>IANA-ENTITY-MIB</title>
            <author>
              <organization>IANA</organization>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="IANA_HW_YANG" target="https://www.iana.org/assignments/iana-hardware/iana-hardware.xhtml">
          <front>
            <title>iana-hardware YANG Module</title>
            <author>
              <organization>IANA</organization>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="RFC8348">
          <front>
            <title>A YANG Data Model for Hardware Management</title>
            <author fullname="A. Bierman" initials="A." surname="Bierman"/>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
            <author fullname="J. Dong" initials="J." surname="Dong"/>
            <author fullname="D. Romascanu" initials="D." surname="Romascanu"/>
            <date month="March" year="2018"/>
            <abstract>
              <t>This document defines a YANG data model for the management of hardware on a single server.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8348"/>
          <seriesInfo name="DOI" value="10.17487/RFC8348"/>
        </reference>
        <reference anchor="RFC8342">
          <front>
            <title>Network Management Datastore Architecture (NMDA)</title>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
            <author fullname="J. Schoenwaelder" initials="J." surname="Schoenwaelder"/>
            <author fullname="P. Shafer" initials="P." surname="Shafer"/>
            <author fullname="K. Watsen" initials="K." surname="Watsen"/>
            <author fullname="R. Wilton" initials="R." surname="Wilton"/>
            <date month="March" year="2018"/>
            <abstract>
              <t>Datastores are a fundamental concept binding the data models written in the YANG data modeling language to network management protocols such as the Network Configuration Protocol (NETCONF) and RESTCONF. This document defines an architectural framework for datastores based on the experience gained with the initial simpler model, addressing requirements that were not well supported in the initial model. This document updates RFC 7950.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8342"/>
          <seriesInfo name="DOI" value="10.17487/RFC8342"/>
        </reference>
        <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>
        <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="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="RFC9911">
          <front>
            <title>Common YANG Data Types</title>
            <author fullname="J. Schönwälder" initials="J." role="editor" surname="Schönwälder"/>
            <date month="December" year="2025"/>
            <abstract>
              <t>This document defines a collection of common data types to be used with the YANG data modeling language. It includes several new type definitions and obsoletes RFC 6991.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9911"/>
          <seriesInfo name="DOI" value="10.17487/RFC9911"/>
        </reference>
        <reference anchor="RFC6933">
          <front>
            <title>Entity MIB (Version 4)</title>
            <author fullname="A. Bierman" initials="A." surname="Bierman"/>
            <author fullname="D. Romascanu" initials="D." surname="Romascanu"/>
            <author fullname="J. Quittek" initials="J." surname="Quittek"/>
            <author fullname="M. Chandramouli" initials="M." surname="Chandramouli"/>
            <date month="May" year="2013"/>
            <abstract>
              <t>This memo defines a portion of the Management Information Base (MIB) for use with network management protocols in the Internet community. In particular, it describes managed objects used for managing multiple logical and physical entities managed by a single Simple Network Management Protocol (SNMP) agent. This document specifies version 4 of the Entity MIB. This memo obsoletes version 3 of the Entity MIB module published as RFC 4133.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6933"/>
          <seriesInfo name="DOI" value="10.17487/RFC6933"/>
        </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="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>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="TMF_SD2-20" target="https://www.tmforum.org/resources/suite/mtosi-4-0/">
          <front>
            <title>SD2-20_Equipment Model</title>
            <author>
              <organization>TM Forum</organization>
            </author>
            <date year="2008" month="May"/>
          </front>
          <seriesInfo name="TMF MTOSI 4.0, Network Resource Fulfilment (NRF), SD2-20" value=""/>
        </reference>
        <reference anchor="OpenConfig" target="https://github.com/openconfig/public/tree/v5.6.0/">
          <front>
            <title>OpenConfig Public Release v5.6.0</title>
            <author>
              <organization>OpenConfig Working Group</organization>
            </author>
            <date year="2026" month="January"/>
          </front>
          <seriesInfo name="Release 5.6.0" value=""/>
        </reference>
        <reference anchor="I-D.ietf-teas-actn-poi-applicability">
          <front>
            <title>Applicability of Abstraction and Control of Traffic Engineered Networks (ACTN) to Packet Optical Integration (POI)</title>
            <author fullname="Fabio Peruzzini" initials="F." surname="Peruzzini">
              <organization>FiberCop</organization>
            </author>
            <author fullname="Jean-Francois Bouquier" initials="J." surname="Bouquier">
              <organization>Vodafone</organization>
            </author>
            <author fullname="Italo Busi" initials="I." surname="Busi">
              <organization>Huawei</organization>
            </author>
            <author fullname="Daniel King" initials="D." surname="King">
              <organization>Old Dog Consulting</organization>
            </author>
            <author fullname="Daniele Ceccarelli" initials="D." surname="Ceccarelli">
              <organization>Cisco</organization>
            </author>
            <date day="14" month="March" year="2026"/>
            <abstract>
              <t>   This document explores the applicability of the Abstraction and
   Control of TE Networks (ACTN) architecture to Packet Optical
   Integration (POI) within the context of IP/MPLS and optical
   internetworking.  It examines the YANG data models defined by the
   IETF that enable an ACTN-based deployment architecture and highlights
   specific scenarios pertinent to Service Providers.

   Existing IETF protocols and data models are identified for each
   multi-technology scenario (packet over optical), particularly
   emphasising the Multi-Domain Service Coordinator to Provisioning
   Network Controller Interface (MPI) within the ACTN architecture

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-teas-actn-poi-applicability-18"/>
        </reference>
        <reference anchor="RFC8309">
          <front>
            <title>Service Models Explained</title>
            <author fullname="Q. Wu" initials="Q." surname="Wu"/>
            <author fullname="W. Liu" initials="W." surname="Liu"/>
            <author fullname="A. Farrel" initials="A." surname="Farrel"/>
            <date month="January" year="2018"/>
            <abstract>
              <t>The IETF has produced many modules in the YANG modeling language. The majority of these modules are used to construct data models to model devices or monolithic functions.</t>
              <t>A small number of YANG modules have been defined to model services (for example, the Layer 3 Virtual Private Network Service Model (L3SM) produced by the L3SM working group and documented in RFC 8049).</t>
              <t>This document describes service models as used within the IETF and also shows where a service model might fit into a software-defined networking architecture. Note that service models do not make any assumption of how a service is actually engineered and delivered for a customer; details of how network protocols and devices are engineered to deliver a service are captured in other modules that are not exposed through the interface between the customer and the provider.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8309"/>
          <seriesInfo name="DOI" value="10.17487/RFC8309"/>
        </reference>
        <reference anchor="RFC8969">
          <front>
            <title>A Framework for Automating Service and Network Management with YANG</title>
            <author fullname="Q. Wu" initials="Q." role="editor" surname="Wu"/>
            <author fullname="M. Boucadair" initials="M." role="editor" surname="Boucadair"/>
            <author fullname="D. Lopez" initials="D." surname="Lopez"/>
            <author fullname="C. Xie" initials="C." surname="Xie"/>
            <author fullname="L. Geng" initials="L." surname="Geng"/>
            <date month="January" year="2021"/>
            <abstract>
              <t>Data models provide a programmatic approach to represent services and networks. Concretely, they can be used to derive configuration information for network and service components, and state information that will be monitored and tracked. Data models can be used during the service and network management life cycle (e.g., service instantiation, service provisioning, service optimization, service monitoring, service diagnosing, and service assurance). Data models are also instrumental in the automation of network management, and they can provide closed-loop control for adaptive and deterministic service creation, delivery, and maintenance.</t>
              <t>This document describes a framework for service and network management automation that takes advantage of YANG modeling technologies. This framework is drawn from a network operator perspective irrespective of the origin of a data model; thus, it can accommodate YANG modules that are developed outside the IETF.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8969"/>
          <seriesInfo name="DOI" value="10.17487/RFC8969"/>
        </reference>
        <reference anchor="RFC8453">
          <front>
            <title>Framework for Abstraction and Control of TE Networks (ACTN)</title>
            <author fullname="D. Ceccarelli" initials="D." role="editor" surname="Ceccarelli"/>
            <author fullname="Y. Lee" initials="Y." role="editor" surname="Lee"/>
            <date month="August" year="2018"/>
            <abstract>
              <t>Traffic Engineered (TE) networks have a variety of mechanisms to facilitate the separation of the data plane and control plane. They also have a range of management and provisioning protocols to configure and activate network resources. These mechanisms represent key technologies for enabling flexible and dynamic networking. The term "Traffic Engineered network" refers to a network that uses any connection-oriented technology under the control of a distributed or centralized control plane to support dynamic provisioning of end-to- end connectivity.</t>
              <t>Abstraction of network resources is a technique that can be applied to a single network domain or across multiple domains to create a single virtualized network that is under the control of a network operator or the customer of the operator that actually owns the network resources.</t>
              <t>This document provides a framework for Abstraction and Control of TE Networks (ACTN) to support virtual network services and connectivity services.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8453"/>
          <seriesInfo name="DOI" value="10.17487/RFC8453"/>
        </reference>
        <reference anchor="RFC8340">
          <front>
            <title>YANG Tree Diagrams</title>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
            <author fullname="L. Berger" initials="L." role="editor" surname="Berger"/>
            <date month="March" year="2018"/>
            <abstract>
              <t>This document captures the current syntax used in YANG module tree diagrams. The purpose of this document is to provide a single location for this definition. This syntax may be updated from time to time based on the evolution of the YANG language.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="215"/>
          <seriesInfo name="RFC" value="8340"/>
          <seriesInfo name="DOI" value="10.17487/RFC8340"/>
        </reference>
        <reference anchor="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-ivy-network-inventory-location">
          <front>
            <title>A YANG Data Model for Network Inventory Location</title>
            <author fullname="Bo Wu" initials="B." surname="Wu">
              <organization>Huawei</organization>
            </author>
            <author fullname="Sergio Belotti" initials="S." surname="Belotti">
              <organization>Nokia</organization>
            </author>
            <author fullname="Jean-Francois Bouquier" initials="J." surname="Bouquier">
              <organization>Vodafone</organization>
            </author>
            <author fullname="Fabio Peruzzini" initials="F." surname="Peruzzini">
              <organization>FiberCop</organization>
            </author>
            <author fullname="Phil Bedard" initials="P." surname="Bedard">
              <organization>Cisco</organization>
            </author>
            <date day="28" month="February" year="2026"/>
            <abstract>
              <t>   This document defines a YANG data model for Network Inventory
   location (e.g., site, room, rack, geo-location data), which provides
   location information with different granularity levels for
   inventoried network elements.

   Accurate location information is useful for network planning,
   deployment, and maintenance.  However, such information cannot be
   obtained or verified from the Network Elements themselves.  This
   document defines a location model for network inventory that extends
   the base inventory with comprehensive location data.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-ivy-network-inventory-location-05"/>
        </reference>
        <reference anchor="RFC1157">
          <front>
            <title>Simple Network Management Protocol (SNMP)</title>
            <author fullname="J.D. Case" initials="J.D." surname="Case"/>
            <author fullname="M. Fedor" initials="M." surname="Fedor"/>
            <author fullname="M.L. Schoffstall" initials="M.L." surname="Schoffstall"/>
            <author fullname="J. Davin" initials="J." surname="Davin"/>
            <date month="May" year="1990"/>
            <abstract>
              <t>This RFC is a re-release of RFC 1098, with a changed "Status of this Memo" section plus a few minor typographical corrections. This memo defines a simple protocol by which management information for a network element may be inspected or altered by logically remote users. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="1157"/>
          <seriesInfo name="DOI" value="10.17487/RFC1157"/>
        </reference>
        <reference anchor="I-D.ietf-ivy-network-inventory-software">
          <front>
            <title>A YANG Network Data Model of Network Inventory Software Extensions</title>
            <author fullname="Bo Wu" initials="B." surname="Wu">
              <organization>Huawei</organization>
            </author>
            <author fullname="Cheng Zhou" initials="C." surname="Zhou">
              <organization>China Mobile</organization>
            </author>
            <author fullname="Qin Wu" initials="Q." surname="Wu">
              <organization>Huawei</organization>
            </author>
            <author fullname="Mohamed Boucadair" initials="M." surname="Boucadair">
              <organization>Orange</organization>
            </author>
            <date day="15" month="April" year="2026"/>
            <abstract>
              <t>   This document extends the base Network Inventory YANG model to
   support non-physical network elements (NEs), such as controllers,
   virtual routers, and virtual firewalls, as well as software
   components like platform operating systems and software modules.  In
   addition to the software revisions and patches already defined in the
   base model, this extension introduces software status and time stamp
   information.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-ivy-network-inventory-software-03"/>
        </reference>
        <reference anchor="RFC9907">
          <front>
            <title>Guidelines for Authors and Reviewers of Documents Containing YANG Data Models</title>
            <author fullname="A. Bierman" initials="A." surname="Bierman"/>
            <author fullname="M. Boucadair" initials="M." role="editor" surname="Boucadair"/>
            <author fullname="Q. Wu" initials="Q." surname="Wu"/>
            <date month="March" year="2026"/>
            <abstract>
              <t>This document provides guidelines for authors and reviewers of specifications containing YANG data models, including IANA-maintained YANG modules. Recommendations and procedures are defined, which are intended to increase interoperability and usability of Network Configuration Protocol (NETCONF) and RESTCONF protocol implementations that utilize YANG modules.</t>
              <t>This document obsoletes RFC 8407; it also updates RFC 8126 by providing additional guidelines for writing the IANA considerations for RFCs that specify IANA-maintained YANG modules.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="216"/>
          <seriesInfo name="RFC" value="9907"/>
          <seriesInfo name="DOI" value="10.17487/RFC9907"/>
        </reference>
        <reference anchor="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="RFC4252">
          <front>
            <title>The Secure Shell (SSH) Authentication Protocol</title>
            <author fullname="T. Ylonen" initials="T." surname="Ylonen"/>
            <author fullname="C. Lonvick" initials="C." role="editor" surname="Lonvick"/>
            <date month="January" year="2006"/>
            <abstract>
              <t>The Secure Shell Protocol (SSH) is a protocol for secure remote login and other secure network services over an insecure network. This document describes the SSH authentication protocol framework and public key, password, and host-based client authentication methods. Additional authentication methods are described in separate documents. The SSH authentication protocol runs on top of the SSH transport layer protocol and provides a single authenticated tunnel for the SSH connection protocol. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4252"/>
          <seriesInfo name="DOI" value="10.17487/RFC4252"/>
        </reference>
        <reference anchor="RFC8446">
          <front>
            <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <date month="August" year="2018"/>
            <abstract>
              <t>This document specifies version 1.3 of the Transport Layer Security (TLS) protocol. TLS allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
              <t>This document updates RFCs 5705 and 6066, and obsoletes RFCs 5077, 5246, and 6961. This document also specifies new requirements for TLS 1.2 implementations.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8446"/>
          <seriesInfo name="DOI" value="10.17487/RFC8446"/>
        </reference>
        <reference anchor="RFC9000">
          <front>
            <title>QUIC: A UDP-Based Multiplexed and Secure Transport</title>
            <author fullname="J. Iyengar" initials="J." role="editor" surname="Iyengar"/>
            <author fullname="M. Thomson" initials="M." role="editor" surname="Thomson"/>
            <date month="May" year="2021"/>
            <abstract>
              <t>This document defines the core of the QUIC transport protocol. QUIC provides applications with flow-controlled streams for structured communication, low-latency connection establishment, and network path migration. QUIC includes security measures that ensure confidentiality, integrity, and availability in a range of deployment circumstances. Accompanying documents describe the integration of TLS for key negotiation, loss detection, and an exemplary congestion control algorithm.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9000"/>
          <seriesInfo name="DOI" value="10.17487/RFC9000"/>
        </reference>
        <reference anchor="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="RFC4152">
          <front>
            <title>A Uniform Resource Name (URN) Namespace for the Common Language Equipment Identifier (CLEI) Code</title>
            <author fullname="K. Tesink" initials="K." surname="Tesink"/>
            <author fullname="R. Fox" initials="R." surname="Fox"/>
            <date month="August" year="2005"/>
            <abstract>
              <t>This document describes a Uniform Resource Name (URN) namespace (RFC 3406) for the assignment of the Common Language Equipment Identifier (CLEI) code, which is used in messages standardized by ANSI. The URN namespace is managed by Telcordia Technologies, Inc., as the maintenance agent for ANSI T1.213. The CLEI code is a globally unique, ten-character alphanumeric intelligent code assigned by Telcordia Technologies at the request of equipment suppliers. The CLEI code identifies communications equipment by specifying product type and features. There is a one-to-one relationship between a CLEI code and supplier's product ID (the manufacturer's name and the part number along with its version number). This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4152"/>
          <seriesInfo name="DOI" value="10.17487/RFC4152"/>
        </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="I-D.ygb-ivy-passive-network-inventory">
          <front>
            <title>A YANG Data Model for Passive Network Inventory</title>
            <author fullname="Aihua Guo" initials="A." surname="Guo">
              <organization>Futurewei</organization>
            </author>
            <author fullname="tom van caenegem" initials="T." surname="van caenegem">
              <organization>Nokia</organization>
            </author>
            <author fullname="Nigel Davis" initials="N." surname="Davis">
              <organization>Ciena</organization>
            </author>
            <author fullname="Mauro Tilocca" initials="M." surname="Tilocca">
              <organization>FiberCop</organization>
            </author>
            <author fullname="Brad Peters" initials="B." surname="Peters">
              <organization>NBN</organization>
            </author>
            <date day="26" month="May" year="2026"/>
            <abstract>
              <t>   This document presents a YANG data model for tracking and managing
   passive network inventory.  The model augments the base network
   inventory model.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ygb-ivy-passive-network-inventory-05"/>
        </reference>
      </references>
    </references>
    <?line 1120?>

<section anchor="comparison-with-openconfig-platform-data-model">
      <name>Comparison With Openconfig-platform Data Model</name>
      <t>Since more and more devices can be managed by domain controller through OpenConfig, to ensure that our inventory data model can cover these devices' inventory data, we have compared our inventory data model with the "openconfig-platform" and "openconfig-platform-types" YANG modules, as defined in <xref target="OpenConfig"/>, which defines the YANG data model used to manage inventory information in OpenConfig.</t>
      <t>Openconfig-platform data model is NE-level and uses a generic component concept to describe its inner devices and containers, which is similar to "ietf-hardware" model in <xref target="RFC8348"/>. Since we have also reused the component concept of <xref target="RFC8348"/> in our inventory data model, we can compare the component's attributes between "openconfig-platform" and our model directly , which is stated in <xref target="tab-oc"/>.</t>
      <table anchor="tab-oc">
        <name>Comparison between openconfig platform and inventory data models</name>
        <thead>
          <tr>
            <th align="left">Attributes in oc-platform</th>
            <th align="left">Attributes in our model</th>
            <th align="left">remark</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">name</td>
            <td align="left">name</td>
            <td align="left"> </td>
          </tr>
          <tr>
            <td align="left">type</td>
            <td align="left">class</td>
            <td align="left">see <xref target="tab-oc-hw"/> for comparison between oc-platform-type:OPENCONFIG_HARDWARE_COMPONENT and ianahw:hardware-clas</td>
          </tr>
          <tr>
            <td align="left">id</td>
            <td align="left">uuid</td>
            <td align="left"> </td>
          </tr>
          <tr>
            <td align="left">location</td>
            <td align="left">location</td>
            <td align="left"> </td>
          </tr>
          <tr>
            <td align="left">description</td>
            <td align="left">description</td>
            <td align="left"> </td>
          </tr>
          <tr>
            <td align="left">mfg-name</td>
            <td align="left">mfg-name</td>
            <td align="left"> </td>
          </tr>
          <tr>
            <td align="left">mfg-date</td>
            <td align="left">mfg-date</td>
            <td align="left"> </td>
          </tr>
          <tr>
            <td align="left">hardware-version</td>
            <td align="left">hardware-rev</td>
            <td align="left"> </td>
          </tr>
          <tr>
            <td align="left">firmware-version</td>
            <td align="left">software-rev*</td>
            <td align="left">items of software-rev list that provide firmware information</td>
          </tr>
          <tr>
            <td align="left">software-version</td>
            <td align="left">software-rev*</td>
            <td align="left">items of software-rev list that provide software information</td>
          </tr>
          <tr>
            <td align="left">serial-no</td>
            <td align="left">serial-number</td>
            <td align="left"> </td>
          </tr>
          <tr>
            <td align="left">part-no</td>
            <td align="left">part-number</td>
            <td align="left"> </td>
          </tr>
          <tr>
            <td align="left">clei-code</td>
            <td align="left">uri</td>
            <td align="left">CLEI code can be mapped into one URI as defined in <xref target="RFC4152"/></td>
          </tr>
          <tr>
            <td align="left">removable</td>
            <td align="left">is-fru</td>
            <td align="left"> </td>
          </tr>
          <tr>
            <td align="left">oper-status</td>
            <td align="left"> </td>
            <td align="left">state data</td>
          </tr>
          <tr>
            <td align="left">empty</td>
            <td align="left"> </td>
            <td align="left">If there is no other component that refer to an holder as parent, it can be considered empty</td>
          </tr>
          <tr>
            <td align="left">parent</td>
            <td align="left">parent-references</td>
            <td align="left"> </td>
          </tr>
          <tr>
            <td align="left">redundant-role</td>
            <td align="left"> </td>
            <td align="left">functional information, may be part of future augmentation</td>
          </tr>
          <tr>
            <td align="left">last-switchover-reason</td>
            <td align="left"> </td>
            <td align="left">state data</td>
          </tr>
          <tr>
            <td align="left">last-switchover-time</td>
            <td align="left"> </td>
            <td align="left">state data</td>
          </tr>
          <tr>
            <td align="left">last-reboot-reason</td>
            <td align="left"> </td>
            <td align="left">state data</td>
          </tr>
          <tr>
            <td align="left">last-reboot-time</td>
            <td align="left"> </td>
            <td align="left">state data</td>
          </tr>
          <tr>
            <td align="left">switchover-ready</td>
            <td align="left"> </td>
            <td align="left">state data</td>
          </tr>
          <tr>
            <td align="left">temperature</td>
            <td align="left"> </td>
            <td align="left">performance data</td>
          </tr>
          <tr>
            <td align="left">memory</td>
            <td align="left"> </td>
            <td align="left">performance data</td>
          </tr>
          <tr>
            <td align="left">allocated-power</td>
            <td align="left"> </td>
            <td align="left">state/performance data</td>
          </tr>
          <tr>
            <td align="left">used-power</td>
            <td align="left"> </td>
            <td align="left">state/performance data</td>
          </tr>
          <tr>
            <td align="left">pcie</td>
            <td align="left"> </td>
            <td align="left">alarm  data</td>
          </tr>
          <tr>
            <td align="left">properties</td>
            <td align="left"> </td>
            <td align="left">Generic properties can be handled as part of "description"</td>
          </tr>
          <tr>
            <td align="left">subcomponents</td>
            <td align="left"> </td>
            <td align="left"> </td>
          </tr>
        </tbody>
      </table>
      <t>As it mentioned in <xref target="ne-component"/> that state data and performance data are out of scope of our data model, it is same for alarm data and it should be defined in some other alarm data models separately. For the same reason some component specific structures in "openconfig-platform", like the one defined for fan, backplane, controller-card, etc., are considered out of scope since they provide specialized operational and alarms data for that components.</t>
      <t>It is also useful to compare the identity oc-platform-type:OPENCONFIG_HARDWARE_COMPONENT with ianahw:hardware-class in the following <xref target="tab-oc-hw"/> to highlight that our model align with openconfig-platorm also for the definition of hardware component type/class.</t>
      <table anchor="tab-oc-hw">
        <name>Comparison between openconfig-platform OPENCONFIG_HARDWARE_COMPONEN and IANA hardware-class identity</name>
        <thead>
          <tr>
            <th align="left">oc-platform-type:OPENCONFIG_HARDWARE_COMPONENT</th>
            <th align="left">ianahw:hardware-class</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">CHASSIS</td>
            <td align="left">chassis</td>
          </tr>
          <tr>
            <td align="left">BACKPLANE</td>
            <td align="left">backplane</td>
          </tr>
          <tr>
            <td align="left">FABRIC</td>
            <td align="left">module</td>
          </tr>
          <tr>
            <td align="left">POWER_SUPPLY</td>
            <td align="left">power-supply</td>
          </tr>
          <tr>
            <td align="left">FAN</td>
            <td align="left">fan</td>
          </tr>
          <tr>
            <td align="left">FAN_TRAY</td>
            <td align="left">module</td>
          </tr>
          <tr>
            <td align="left">FAN_TRAY_CONTROLLER</td>
            <td align="left">module</td>
          </tr>
          <tr>
            <td align="left">SENSOR</td>
            <td align="left">sensor</td>
          </tr>
          <tr>
            <td align="left">LINECARD</td>
            <td align="left">module</td>
          </tr>
          <tr>
            <td align="left">CONTROLLER_CARD</td>
            <td align="left">module</td>
          </tr>
          <tr>
            <td align="left">PORT</td>
            <td align="left">port</td>
          </tr>
          <tr>
            <td align="left">USB_PORT</td>
            <td align="left">port</td>
          </tr>
          <tr>
            <td align="left">TRANSCEIVER</td>
            <td align="left">module</td>
          </tr>
          <tr>
            <td align="left">CPU</td>
            <td align="left">cpu</td>
          </tr>
          <tr>
            <td align="left">STORAGE</td>
            <td align="left">storage-drive</td>
          </tr>
          <tr>
            <td align="left">INTEGRATED_CIRCUIT</td>
            <td align="left">module</td>
          </tr>
          <tr>
            <td align="left">WIFI_ACCESS_POINT</td>
            <td align="left">N/A (technology specific)</td>
          </tr>
          <tr>
            <td align="left">FPGA</td>
            <td align="left">module</td>
          </tr>
        </tbody>
      </table>
      <t>Overall we can state that our inventory data model can be populated with data from a device running OpenConfig.</t>
    </section>
    <section anchor="terminology-of-container">
      <name>Terminology of Container</name>
      <t>Within this document , with the term "container" we consider a hardware component class capable of containing one or more removable physical entities, e.g. a slot in a chassis is containing a board.</t>
      <table anchor="tab-term">
        <name>terminology mapping</name>
        <thead>
          <tr>
            <th align="left">terminology of IVY base model</th>
            <th align="left">terminology in other model</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">container</td>
            <td align="left">holder</td>
          </tr>
        </tbody>
      </table>
    </section>
    <section anchor="scalability">
      <name>Efficiency Issue</name>
      <t>During  the integration with OSS in some operators, some efficiency/scalability concerns have been discovered when synchronizing network inventory data for big networks. As outlined in <xref target="security"/>, these efficiency and scalability issues can pose security issues.</t>
      <t>While implementing NACM <xref target="RFC8341"/> and protocol-specific filtering mechanisms (e.g., RESTCONF filtering <xref target="RFC8040"/>) mitigates these efficiency and scalability concerns, full resolution may require further protocol enhancements beyond the scope of this document.</t>
      <t>Considering that relational databases are widely used by existing OSS systems and also by some network controllers, the inventory objects are most likely to be saved in different tables. With the model defined in this document, when doing a full synchronization, network controller needs to convert all inventory objects of each NE into component objects and combine them together into a single list, and then construct a response and send to OSS or MDSC. The OSS or MDSC needs to classify the component list and divide them into different groups, in order to save them in different tables. The combining-regrouping steps are impacting the network controller &amp; OSS/MDSC processing, which may result in efficiency/scalability limitations in large scale networks.</t>
      <t>An alternative YANG model structure, which defines the inventory objects directly, instead of defining generic components, has also been analyzed. However, also with this model, there still could be some scalability limitations when synchronizing full inventory resources in large scale of networks. This scalability limitation is caused by the limited transmission capabilities of HTTP protocol. We think that this scalability limitation should be solved at protocol level rather than data model level.</t>
      <t>The model proposed by this document is designed to be as generic as possible so to cover future special types of inventory objects that could be used in other technologies, that have not been identified yet. If the inventory objects were to be defined directly with fixed hierarchical relationships in YANG model, this new type of inventory objects needs to be manually defined, which is not a backward compatible change and therefore is not an acceptable approach for implementation. With a generic model, it is only needed to augment a new component class and extend some specific attributes for this new inventory component class, which is more flexible. We consider that this generic data model, enabling a flexible and backward compatible approach for other technologies, represents the main scope of this document. Solution description to efficiency/scalability limitations mentioned above is considered as out-of-scope.</t>
    </section>
    <section anchor="port-examples">
      <name>Examples of ports</name>
      <t>This appendix provides some examples of port implementations and how they can be modelled using the "ietf-network-inventory" module defined in <xref target="ni-yang"/>.</t>
      <t><xref target="fig-board"/> shows an example of a single board which contains three type of ports:</t>
      <ol spacing="normal" type="1"><li>
          <t>An integrated port (non-pluggable);</t>
        </li>
        <li>
          <t>An empty port;</t>
        </li>
        <li>
          <t>A pluggable port</t>
        </li>
      </ol>
      <figure anchor="fig-board">
        <name>Example of a board with different types of ports</name>
        <artset>
          <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="400" width="456" viewBox="0 0 456 400" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 72,32 L 72,368" fill="none" stroke="black"/>
              <path d="M 104,128 L 104,208" fill="none" stroke="black"/>
              <path d="M 104,240 L 104,320" fill="none" stroke="black"/>
              <path d="M 128,256 L 128,304" fill="none" stroke="black"/>
              <path d="M 200,48 L 200,96" fill="none" stroke="black"/>
              <path d="M 224,264 L 224,296" fill="none" stroke="black"/>
              <path d="M 232,32 L 232,128" fill="none" stroke="black"/>
              <path d="M 232,208 L 232,240" fill="none" stroke="black"/>
              <path d="M 232,320 L 232,368" fill="none" stroke="black"/>
              <path d="M 256,256 L 256,304" fill="none" stroke="black"/>
              <path d="M 72,32 L 232,32" fill="none" stroke="black"/>
              <path d="M 200,48 L 232,48" fill="none" stroke="black"/>
              <path d="M 200,96 L 232,96" fill="none" stroke="black"/>
              <path d="M 104,128 L 232,128" fill="none" stroke="black"/>
              <path d="M 104,208 L 232,208" fill="none" stroke="black"/>
              <path d="M 104,240 L 232,240" fill="none" stroke="black"/>
              <path d="M 128,256 L 256,256" fill="none" stroke="black"/>
              <path d="M 128,304 L 256,304" fill="none" stroke="black"/>
              <path d="M 104,320 L 232,320" fill="none" stroke="black"/>
              <path d="M 72,368 L 232,368" fill="none" stroke="black"/>
              <g class="text">
                <text x="216" y="68">O</text>
                <text x="284" y="68">1)</text>
                <text x="352" y="68">Non-Pluggable</text>
                <text x="428" y="68">Port</text>
                <text x="216" y="84">O</text>
                <text x="348" y="84">(integrated)</text>
                <text x="284" y="148">2)</text>
                <text x="320" y="148">Empty</text>
                <text x="364" y="148">hole</text>
                <text x="412" y="148">(port)</text>
                <text x="20" y="164">Hole</text>
                <text x="52" y="164">#1</text>
                <text x="20" y="276">Hole</text>
                <text x="52" y="276">#2</text>
                <text x="240" y="276">O</text>
                <text x="284" y="276">3)</text>
                <text x="336" y="276">Pluggable</text>
                <text x="396" y="276">port</text>
                <text x="240" y="292">O</text>
                <text x="136" y="356">(SLOT</text>
                <text x="168" y="356">#</text>
                <text x="192" y="356">10)</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art"><![CDATA[
          +-------------------+
          |               +---+
          |               | O |     1) Non-Pluggable Port 
          |               | O |        (integrated)
          |               +---+
          |                   |
          |   +---------------+
          |   |                     2) Empty hole (port)
  Hole #1 |   |                
          |   |                     
          |   |                
          |   +---------------+
          |                   |
          |   +---------------+
          |   |  +---------------+
  Hole #2 |   |  |           | O |  3) Pluggable port
          |   |  |           | O |     
          |   |  +---------------+
          |   +---------------+
          |                   |
          |     (SLOT # 10)   |
          +-------------------+
]]></artwork>
        </artset>
      </figure>
      <section anchor="json-examples">
        <name>JSON Examples</name>
        <t>This appendix contains an example of an instance data tree in JSON encoding <xref target="RFC7951"/>, instantiating the "ietf-network-inventory" module to describe the three types of ports on a single board, as shown in <xref target="fig-board"/>.</t>
        <artwork type="ascii-art"><![CDATA[
=============== NOTE: '\' line wrapping per RFC 8792 ================

{
  "ietf-network-inventory:network-inventory": {
    "network-elements": {
      "network-element" : [
        {
          "ne-id": "NE-1",
          "description": "Network element example with fixed and \
                                                   pluggable ports.",
          "components": {
            "component": [
              {
                "component-id": "board-1",
                "class": "iana-hardware:module",
                "description": "Board example with fixed and \
                                                    pluggable ports."
              },
              {
                "component-id": "port-1",
                "class": "iana-hardware:port",
                "description": "Example of an integrated (non-\
                                                   pluggable) port.",
                "parent": [
                  "board-1"
                ],
                "parent-rel-pos": "1"
              },
              {
                "component-id": "port-2",
                "class": "iana-hardware:port",
                "description": "Example of an empty pluggable port.",
                "parent": [
                  "board-1"
                ],
                "parent-rel-pos": "2"
              },
              {
                "component-id": "port-3",
                "class": "iana-hardware:port",
                "description": "Example of a non-empty pluggable \
                                                              port.",
                "parent": [
                  "board-1"
                ],
                "parent-rel-pos": "3"
              },
              {
                "component-id": "transceiver-module-3",
                "class": "iana-hardware:module",
                "description": "Example of a pluggable module \
                                   plugged within a pluggable port.",
                "parent": [
                  "port-3"
                ],
                "is-fru": true
              }
            ]
          }
        }
      ]
    }
  }
}
]]></artwork>
      </section>
    </section>
    <section anchor="multi-chassis-examples">
      <name>Example of multi-chassis network elements</name>
      <t>This appendix provides some examples of multi-chassis network elements and how they can be modelled using the "ietf-network-inventory" module defined in <xref target="ni-yang"/>.</t>
      <t>Multi-chassis network elements are network elements composed by two or more chassis interconnected, in principle, with any topology.</t>
      <t>Stacked switches are an example of multi-chassis which consist of multiple standalone switches that are interconnected through dedicated stack ports and cables and managed as a single logical unit. Stacked switch:</t>
      <ul spacing="normal">
        <li>
          <t>are connected using a daisy-chain or a ring topology</t>
        </li>
        <li>
          <t>are managed using a single IP Address</t>
        </li>
        <li>
          <t>synchronized software-upgrade</t>
        </li>
        <li>
          <t>use Priority/MAC-Addr(s) to decide Main/Members selection and communication.</t>
        </li>
      </ul>
      <t><xref target="fig-daisy-chain-stacked"/> and <xref target="fig-ring-stacked"/> describe two examples of stacked switch with three stacked switches (pizza boxes) connected in a daisy-chain or ring topology.</t>
      <figure anchor="fig-daisy-chain-stacked">
        <name>Example of a stacked switch in a daisy chain topology</name>
        <artset>
          <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="528" width="360" viewBox="0 0 360 528" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 8,32 L 8,144" fill="none" stroke="black"/>
              <path d="M 8,192 L 8,304" fill="none" stroke="black"/>
              <path d="M 8,352 L 8,464" fill="none" stroke="black"/>
              <path d="M 272,48 L 272,128" fill="none" stroke="black"/>
              <path d="M 272,208 L 272,288" fill="none" stroke="black"/>
              <path d="M 272,368 L 272,448" fill="none" stroke="black"/>
              <path d="M 304,48 L 304,128" fill="none" stroke="black"/>
              <path d="M 304,208 L 304,288" fill="none" stroke="black"/>
              <path d="M 304,368 L 304,448" fill="none" stroke="black"/>
              <path d="M 320,32 L 320,104" fill="none" stroke="black"/>
              <path d="M 320,120 L 320,144" fill="none" stroke="black"/>
              <path d="M 320,192 L 320,216" fill="none" stroke="black"/>
              <path d="M 320,232 L 320,264" fill="none" stroke="black"/>
              <path d="M 320,280 L 320,304" fill="none" stroke="black"/>
              <path d="M 320,352 L 320,376" fill="none" stroke="black"/>
              <path d="M 320,392 L 320,464" fill="none" stroke="black"/>
              <path d="M 352,112 L 352,224" fill="none" stroke="black"/>
              <path d="M 352,272 L 352,384" fill="none" stroke="black"/>
              <path d="M 8,32 L 320,32" fill="none" stroke="black"/>
              <path d="M 272,48 L 304,48" fill="none" stroke="black"/>
              <path d="M 272,80 L 304,80" fill="none" stroke="black"/>
              <path d="M 272,96 L 304,96" fill="none" stroke="black"/>
              <path d="M 312,112 L 352,112" fill="none" stroke="black"/>
              <path d="M 272,128 L 304,128" fill="none" stroke="black"/>
              <path d="M 8,144 L 320,144" fill="none" stroke="black"/>
              <path d="M 8,192 L 320,192" fill="none" stroke="black"/>
              <path d="M 272,208 L 304,208" fill="none" stroke="black"/>
              <path d="M 312,224 L 352,224" fill="none" stroke="black"/>
              <path d="M 272,240 L 304,240" fill="none" stroke="black"/>
              <path d="M 272,256 L 304,256" fill="none" stroke="black"/>
              <path d="M 312,272 L 352,272" fill="none" stroke="black"/>
              <path d="M 272,288 L 304,288" fill="none" stroke="black"/>
              <path d="M 8,304 L 320,304" fill="none" stroke="black"/>
              <path d="M 8,352 L 320,352" fill="none" stroke="black"/>
              <path d="M 272,368 L 304,368" fill="none" stroke="black"/>
              <path d="M 312,384 L 352,384" fill="none" stroke="black"/>
              <path d="M 272,400 L 304,400" fill="none" stroke="black"/>
              <path d="M 272,416 L 304,416" fill="none" stroke="black"/>
              <path d="M 272,448 L 304,448" fill="none" stroke="black"/>
              <path d="M 8,464 L 320,464" fill="none" stroke="black"/>
              <polygon class="arrowhead" points="320,384 308,378.4 308,389.6" fill="black" transform="rotate(180,312,384)"/>
              <polygon class="arrowhead" points="320,272 308,266.4 308,277.6" fill="black" transform="rotate(180,312,272)"/>
              <polygon class="arrowhead" points="320,224 308,218.4 308,229.6" fill="black" transform="rotate(180,312,224)"/>
              <polygon class="arrowhead" points="320,112 308,106.4 308,117.6" fill="black" transform="rotate(180,312,112)"/>
              <g class="text">
                <text x="288" y="68">1</text>
                <text x="104" y="84">Chassis</text>
                <text x="144" y="84">1</text>
                <text x="288" y="116">2</text>
                <text x="288" y="228">1</text>
                <text x="104" y="244">Chassis</text>
                <text x="144" y="244">2</text>
                <text x="288" y="276">2</text>
                <text x="288" y="388">1</text>
                <text x="104" y="404">Chassis</text>
                <text x="144" y="404">3</text>
                <text x="288" y="436">2</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art"><![CDATA[
    +--------------------------------------+
    |                                +---+ |
    |                                | 1 | |
    |        Chassis 1               +---+ |
    |                                +---+ |
    |                                | 2 |<----+
    |                                +---+ |   |
    +--------------------------------------+   |
                                               |
                                               |
    +--------------------------------------+   |
    |                                +---+ |   |
    |                                | 1 |<----+
    |        Chassis 2               +---+ |
    |                                +---+ |
    |                                | 2 |<----+
    |                                +---+ |   |
    +--------------------------------------+   |
                                               |
                                               |
    +--------------------------------------+   |
    |                                +---+ |   |
    |                                | 1 |<----+
    |        Chassis 3               +---+ |
    |                                +---+ |
    |                                | 2 | |
    |                                +---+ |
    +--------------------------------------+

    
]]></artwork>
        </artset>
      </figure>
      <figure anchor="fig-ring-stacked">
        <name>Example of a stacked switch in a ring topology</name>
        <artset>
          <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="512" width="400" viewBox="0 0 400 512" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 8,48 L 8,160" fill="none" stroke="black"/>
              <path d="M 8,208 L 8,320" fill="none" stroke="black"/>
              <path d="M 8,368 L 8,480" fill="none" stroke="black"/>
              <path d="M 272,64 L 272,144" fill="none" stroke="black"/>
              <path d="M 272,224 L 272,304" fill="none" stroke="black"/>
              <path d="M 272,384 L 272,464" fill="none" stroke="black"/>
              <path d="M 304,64 L 304,144" fill="none" stroke="black"/>
              <path d="M 304,224 L 304,304" fill="none" stroke="black"/>
              <path d="M 304,384 L 304,464" fill="none" stroke="black"/>
              <path d="M 320,48 L 320,72" fill="none" stroke="black"/>
              <path d="M 320,88 L 320,120" fill="none" stroke="black"/>
              <path d="M 320,136 L 320,160" fill="none" stroke="black"/>
              <path d="M 320,208 L 320,232" fill="none" stroke="black"/>
              <path d="M 320,248 L 320,280" fill="none" stroke="black"/>
              <path d="M 320,296 L 320,320" fill="none" stroke="black"/>
              <path d="M 320,368 L 320,392" fill="none" stroke="black"/>
              <path d="M 320,408 L 320,440" fill="none" stroke="black"/>
              <path d="M 320,456 L 320,480" fill="none" stroke="black"/>
              <path d="M 352,128 L 352,240" fill="none" stroke="black"/>
              <path d="M 352,288 L 352,400" fill="none" stroke="black"/>
              <path d="M 392,80 L 392,448" fill="none" stroke="black"/>
              <path d="M 8,48 L 320,48" fill="none" stroke="black"/>
              <path d="M 272,64 L 304,64" fill="none" stroke="black"/>
              <path d="M 312,80 L 392,80" fill="none" stroke="black"/>
              <path d="M 272,96 L 304,96" fill="none" stroke="black"/>
              <path d="M 272,112 L 304,112" fill="none" stroke="black"/>
              <path d="M 312,128 L 352,128" fill="none" stroke="black"/>
              <path d="M 272,144 L 304,144" fill="none" stroke="black"/>
              <path d="M 8,160 L 320,160" fill="none" stroke="black"/>
              <path d="M 8,208 L 320,208" fill="none" stroke="black"/>
              <path d="M 272,224 L 304,224" fill="none" stroke="black"/>
              <path d="M 312,240 L 352,240" fill="none" stroke="black"/>
              <path d="M 272,256 L 304,256" fill="none" stroke="black"/>
              <path d="M 272,272 L 304,272" fill="none" stroke="black"/>
              <path d="M 312,288 L 352,288" fill="none" stroke="black"/>
              <path d="M 272,304 L 304,304" fill="none" stroke="black"/>
              <path d="M 8,320 L 320,320" fill="none" stroke="black"/>
              <path d="M 8,368 L 320,368" fill="none" stroke="black"/>
              <path d="M 272,384 L 304,384" fill="none" stroke="black"/>
              <path d="M 312,400 L 352,400" fill="none" stroke="black"/>
              <path d="M 272,416 L 304,416" fill="none" stroke="black"/>
              <path d="M 272,432 L 304,432" fill="none" stroke="black"/>
              <path d="M 312,448 L 392,448" fill="none" stroke="black"/>
              <path d="M 272,464 L 304,464" fill="none" stroke="black"/>
              <path d="M 8,480 L 320,480" fill="none" stroke="black"/>
              <polygon class="arrowhead" points="320,448 308,442.4 308,453.6" fill="black" transform="rotate(180,312,448)"/>
              <polygon class="arrowhead" points="320,400 308,394.4 308,405.6" fill="black" transform="rotate(180,312,400)"/>
              <polygon class="arrowhead" points="320,288 308,282.4 308,293.6" fill="black" transform="rotate(180,312,288)"/>
              <polygon class="arrowhead" points="320,240 308,234.4 308,245.6" fill="black" transform="rotate(180,312,240)"/>
              <polygon class="arrowhead" points="320,128 308,122.4 308,133.6" fill="black" transform="rotate(180,312,128)"/>
              <polygon class="arrowhead" points="320,80 308,74.4 308,85.6" fill="black" transform="rotate(180,312,80)"/>
              <g class="text">
                <text x="288" y="84">1</text>
                <text x="104" y="100">Chassis</text>
                <text x="144" y="100">1</text>
                <text x="288" y="132">2</text>
                <text x="288" y="244">1</text>
                <text x="104" y="260">Chassis</text>
                <text x="144" y="260">2</text>
                <text x="288" y="292">2</text>
                <text x="288" y="404">1</text>
                <text x="104" y="420">Chassis</text>
                <text x="144" y="420">3</text>
                <text x="288" y="452">2</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art"><![CDATA[

    +--------------------------------------+
    |                                +---+ |
    |                                | 1 |<---------+
    |        Chassis 1               +---+ |        |
    |                                +---+ |        |
    |                                | 2 |<----+    |
    |                                +---+ |   |    |
    +--------------------------------------+   |    |
                                               |    |
                                               |    |
    +--------------------------------------+   |    |
    |                                +---+ |   |    |
    |                                | 1 |<----+    |
    |        Chassis 2               +---+ |        |
    |                                +---+ |        |
    |                                | 2 |<----+    |
    |                                +---+ |   |    |
    +--------------------------------------+   |    |
                                               |    |
                                               |    |
    +--------------------------------------+   |    |
    |                                +---+ |   |    |
    |                                | 1 |<----+    |
    |        Chassis 3               +---+ |        |
    |                                +---+ |        |
    |                                | 2 |<---------+
    |                                +---+ |
    +--------------------------------------+
]]></artwork>
        </artset>
      </figure>
      <t>Using the base network inventory YANG data model, each stackable switch can be modelled as a chassis within the same network element, which models the stacked switch. The stack ports are modelled like other ports. The stack cables are not reported using the base network inventory YANG data model but can be reported using the passive network inventory YANG data model under definition in <xref target="I-D.ygb-ivy-passive-network-inventory"/>.</t>
      <t>Cascaded switches are another example of multi-chassis which consist of multiple standalone switches that are interconnected and managed as a single logical unit. Cascaded switch:</t>
      <ul spacing="normal">
        <li>
          <t>are usually connected in a tree topology</t>
        </li>
        <li>
          <t>are managed using a single IP Address</t>
        </li>
        <li>
          <t>the root of the tree is configured as Main.</t>
        </li>
      </ul>
      <t><xref target="fig-tree-cascaded"/> describe an example of cascaded switch with three chassis connected in a tree topology.</t>
      <figure anchor="fig-tree-cascaded">
        <name>Example of a cascaded switch in a tree topology</name>
        <artset>
          <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="752" width="488" viewBox="0 0 488 752" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 8,144 L 8,464" fill="none" stroke="black"/>
              <path d="M 32,384 L 32,456" fill="none" stroke="black"/>
              <path d="M 32,472 L 32,528" fill="none" stroke="black"/>
              <path d="M 56,32 L 56,128" fill="none" stroke="black"/>
              <path d="M 56,160 L 56,336" fill="none" stroke="black"/>
              <path d="M 64,64 L 64,96" fill="none" stroke="black"/>
              <path d="M 64,128 L 64,160" fill="none" stroke="black"/>
              <path d="M 64,288 L 64,320" fill="none" stroke="black"/>
              <path d="M 72,448 L 72,480" fill="none" stroke="black"/>
              <path d="M 80,392 L 80,520" fill="none" stroke="black"/>
              <path d="M 96,64 L 96,96" fill="none" stroke="black"/>
              <path d="M 96,128 L 96,160" fill="none" stroke="black"/>
              <path d="M 96,288 L 96,320" fill="none" stroke="black"/>
              <path d="M 104,40 L 104,328" fill="none" stroke="black"/>
              <path d="M 200,576 L 200,720" fill="none" stroke="black"/>
              <path d="M 240,392 L 240,520" fill="none" stroke="black"/>
              <path d="M 248,584 L 248,712" fill="none" stroke="black"/>
              <path d="M 264,40 L 264,328" fill="none" stroke="black"/>
              <path d="M 288,384 L 288,528" fill="none" stroke="black"/>
              <path d="M 312,40 L 312,328" fill="none" stroke="black"/>
              <path d="M 384,40 L 384,328" fill="none" stroke="black"/>
              <path d="M 392,64 L 392,96" fill="none" stroke="black"/>
              <path d="M 392,192 L 392,224" fill="none" stroke="black"/>
              <path d="M 392,288 L 392,320" fill="none" stroke="black"/>
              <path d="M 408,584 L 408,712" fill="none" stroke="black"/>
              <path d="M 416,656 L 416,688" fill="none" stroke="black"/>
              <path d="M 424,64 L 424,96" fill="none" stroke="black"/>
              <path d="M 424,192 L 424,224" fill="none" stroke="black"/>
              <path d="M 424,288 L 424,320" fill="none" stroke="black"/>
              <path d="M 432,32 L 432,192" fill="none" stroke="black"/>
              <path d="M 432,224 L 432,336" fill="none" stroke="black"/>
              <path d="M 448,656 L 448,688" fill="none" stroke="black"/>
              <path d="M 456,576 L 456,656" fill="none" stroke="black"/>
              <path d="M 456,688 L 456,720" fill="none" stroke="black"/>
              <path d="M 480,208 L 480,672" fill="none" stroke="black"/>
              <path d="M 56,32 L 432,32" fill="none" stroke="black"/>
              <path d="M 72,64 L 88,64" fill="none" stroke="black"/>
              <path d="M 400,64 L 416,64" fill="none" stroke="black"/>
              <path d="M 72,96 L 88,96" fill="none" stroke="black"/>
              <path d="M 400,96 L 416,96" fill="none" stroke="black"/>
              <path d="M 72,128 L 88,128" fill="none" stroke="black"/>
              <path d="M 8,144 L 56,144" fill="none" stroke="black"/>
              <path d="M 72,160 L 88,160" fill="none" stroke="black"/>
              <path d="M 400,192 L 416,192" fill="none" stroke="black"/>
              <path d="M 432,208 L 480,208" fill="none" stroke="black"/>
              <path d="M 400,224 L 416,224" fill="none" stroke="black"/>
              <path d="M 72,288 L 88,288" fill="none" stroke="black"/>
              <path d="M 400,288 L 416,288" fill="none" stroke="black"/>
              <path d="M 72,320 L 88,320" fill="none" stroke="black"/>
              <path d="M 400,320 L 416,320" fill="none" stroke="black"/>
              <path d="M 56,336 L 432,336" fill="none" stroke="black"/>
              <path d="M 32,384 L 288,384" fill="none" stroke="black"/>
              <path d="M 48,448 L 64,448" fill="none" stroke="black"/>
              <path d="M 8,464 L 40,464" fill="none" stroke="black"/>
              <path d="M 48,480 L 64,480" fill="none" stroke="black"/>
              <path d="M 32,528 L 288,528" fill="none" stroke="black"/>
              <path d="M 200,576 L 456,576" fill="none" stroke="black"/>
              <path d="M 424,656 L 440,656" fill="none" stroke="black"/>
              <path d="M 456,672 L 480,672" fill="none" stroke="black"/>
              <path d="M 424,688 L 440,688" fill="none" stroke="black"/>
              <path d="M 200,720 L 456,720" fill="none" stroke="black"/>
              <path d="M 72,64 C 63.16936,64 56,71.16936 56,80" fill="none" stroke="black"/>
              <path d="M 72,64 C 63.16936,64 56,56.83064 56,48" fill="none" stroke="black"/>
              <path d="M 88,64 C 96.83064,64 104,71.16936 104,80" fill="none" stroke="black"/>
              <path d="M 88,64 C 96.83064,64 104,56.83064 104,48" fill="none" stroke="black"/>
              <path d="M 400,64 C 391.16936,64 384,71.16936 384,80" fill="none" stroke="black"/>
              <path d="M 400,64 C 391.16936,64 384,56.83064 384,48" fill="none" stroke="black"/>
              <path d="M 416,64 C 424.83064,64 432,71.16936 432,80" fill="none" stroke="black"/>
              <path d="M 416,64 C 424.83064,64 432,56.83064 432,48" fill="none" stroke="black"/>
              <path d="M 72,96 C 63.16936,96 56,103.16936 56,112" fill="none" stroke="black"/>
              <path d="M 72,96 C 63.16936,96 56,88.83064 56,80" fill="none" stroke="black"/>
              <path d="M 88,96 C 96.83064,96 104,103.16936 104,112" fill="none" stroke="black"/>
              <path d="M 88,96 C 96.83064,96 104,88.83064 104,80" fill="none" stroke="black"/>
              <path d="M 400,96 C 391.16936,96 384,103.16936 384,112" fill="none" stroke="black"/>
              <path d="M 400,96 C 391.16936,96 384,88.83064 384,80" fill="none" stroke="black"/>
              <path d="M 416,96 C 424.83064,96 432,103.16936 432,112" fill="none" stroke="black"/>
              <path d="M 416,96 C 424.83064,96 432,88.83064 432,80" fill="none" stroke="black"/>
              <path d="M 72,128 C 63.16936,128 56,120.83064 56,112" fill="none" stroke="black"/>
              <path d="M 88,128 C 96.83064,128 104,135.16936 104,144" fill="none" stroke="black"/>
              <path d="M 88,128 C 96.83064,128 104,120.83064 104,112" fill="none" stroke="black"/>
              <path d="M 72,160 C 63.16936,160 56,167.16936 56,176" fill="none" stroke="black"/>
              <path d="M 88,160 C 96.83064,160 104,167.16936 104,176" fill="none" stroke="black"/>
              <path d="M 88,160 C 96.83064,160 104,152.83064 104,144" fill="none" stroke="black"/>
              <path d="M 400,192 C 391.16936,192 384,199.16936 384,208" fill="none" stroke="black"/>
              <path d="M 400,192 C 391.16936,192 384,184.83064 384,176" fill="none" stroke="black"/>
              <path d="M 416,192 C 424.83064,192 432,184.83064 432,176" fill="none" stroke="black"/>
              <path d="M 400,224 C 391.16936,224 384,231.16936 384,240" fill="none" stroke="black"/>
              <path d="M 400,224 C 391.16936,224 384,216.83064 384,208" fill="none" stroke="black"/>
              <path d="M 416,224 C 424.83064,224 432,231.16936 432,240" fill="none" stroke="black"/>
              <path d="M 72,288 C 63.16936,288 56,295.16936 56,304" fill="none" stroke="black"/>
              <path d="M 72,288 C 63.16936,288 56,280.83064 56,272" fill="none" stroke="black"/>
              <path d="M 88,288 C 96.83064,288 104,295.16936 104,304" fill="none" stroke="black"/>
              <path d="M 88,288 C 96.83064,288 104,280.83064 104,272" fill="none" stroke="black"/>
              <path d="M 400,288 C 391.16936,288 384,295.16936 384,304" fill="none" stroke="black"/>
              <path d="M 400,288 C 391.16936,288 384,280.83064 384,272" fill="none" stroke="black"/>
              <path d="M 416,288 C 424.83064,288 432,295.16936 432,304" fill="none" stroke="black"/>
              <path d="M 416,288 C 424.83064,288 432,280.83064 432,272" fill="none" stroke="black"/>
              <path d="M 72,320 C 63.16936,320 56,327.16936 56,336" fill="none" stroke="black"/>
              <path d="M 72,320 C 63.16936,320 56,312.83064 56,304" fill="none" stroke="black"/>
              <path d="M 88,320 C 96.83064,320 104,312.83064 104,304" fill="none" stroke="black"/>
              <path d="M 400,320 C 391.16936,320 384,312.83064 384,304" fill="none" stroke="black"/>
              <path d="M 416,320 C 424.83064,320 432,327.16936 432,336" fill="none" stroke="black"/>
              <path d="M 416,320 C 424.83064,320 432,312.83064 432,304" fill="none" stroke="black"/>
              <path d="M 48,448 C 39.16936,448 32,440.83064 32,432" fill="none" stroke="black"/>
              <path d="M 64,448 C 72.83064,448 80,455.16936 80,464" fill="none" stroke="black"/>
              <path d="M 64,448 C 72.83064,448 80,440.83064 80,432" fill="none" stroke="black"/>
              <path d="M 48,480 C 39.16936,480 32,487.16936 32,496" fill="none" stroke="black"/>
              <path d="M 64,480 C 72.83064,480 80,487.16936 80,496" fill="none" stroke="black"/>
              <path d="M 64,480 C 72.83064,480 80,472.83064 80,464" fill="none" stroke="black"/>
              <path d="M 424,656 C 415.16936,656 408,663.16936 408,672" fill="none" stroke="black"/>
              <path d="M 424,656 C 415.16936,656 408,648.83064 408,640" fill="none" stroke="black"/>
              <path d="M 440,656 C 448.83064,656 456,648.83064 456,640" fill="none" stroke="black"/>
              <path d="M 424,688 C 415.16936,688 408,695.16936 408,704" fill="none" stroke="black"/>
              <path d="M 424,688 C 415.16936,688 408,680.83064 408,672" fill="none" stroke="black"/>
              <path d="M 440,688 C 448.83064,688 456,695.16936 456,704" fill="none" stroke="black"/>
              <polygon class="arrowhead" points="464,672 452,666.4 452,677.6" fill="black" transform="rotate(180,456,672)"/>
              <polygon class="arrowhead" points="440,208 428,202.4 428,213.6" fill="black" transform="rotate(180,432,208)"/>
              <polygon class="arrowhead" points="64,144 52,138.4 52,149.6" fill="black" transform="rotate(0,56,144)"/>
              <polygon class="arrowhead" points="48,464 36,458.4 36,469.6" fill="black" transform="rotate(0,40,464)"/>
              <g class="text">
                <text x="84" y="52">S1</text>
                <text x="168" y="52">Chassis</text>
                <text x="208" y="52">1</text>
                <text x="288" y="52">S20</text>
                <text x="408" y="52">S32</text>
                <text x="80" y="84">1</text>
                <text x="408" y="84">1</text>
                <text x="80" y="116">...</text>
                <text x="80" y="148">4</text>
                <text x="408" y="148">...</text>
                <text x="168" y="212">...</text>
                <text x="352" y="212">...</text>
                <text x="408" y="212">6</text>
                <text x="80" y="228">...</text>
                <text x="408" y="260">...</text>
                <text x="76" y="308">10</text>
                <text x="404" y="308">10</text>
                <text x="60" y="404">S1</text>
                <text x="152" y="404">Chassis</text>
                <text x="192" y="404">2</text>
                <text x="264" y="404">S16</text>
                <text x="56" y="468">5</text>
                <text x="228" y="596">S1</text>
                <text x="320" y="596">Chassis</text>
                <text x="360" y="596">3</text>
                <text x="432" y="596">S16</text>
                <text x="432" y="676">7</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art"><![CDATA[
        +----------------------------------------------+
        |  S1 |    Chassis 1      | S20 |        | S32 |
        |+---+|                   |     |        |+---+|
        || 1 ||                   |     |        || 1 ||
        |+---+|                   |     |        |+---+|
        | ... |                   |     |        |     |
        |+---+|                   |     |        |     |
  +----->| 4 ||                   |     |        | ... |
  |     |+---+|                   |     |        |     |
  |     |     |                   |     |        |     |
  |     |     |                   |     |        |+---+|
  |     |     |      ...          |     |   ...  || 6 |<-----+
  |     | ... |                   |     |        |+---+|     |
  |     |     |                   |     |        |     |     |
  |     |     |                   |     |        | ... |     |
  |     |     |                   |     |        |     |     |
  |     |+---+|                   |     |        |+---+|     |
  |     ||10 ||                   |     |        ||10 ||     |
  |     |+---+|                   |     |        |+---+|     |
  |     +----------------------------------------------+     |
  |                                                          |
  |                                                          |
  |  +-------------------------------+                       |
  |  |  S1 |     Chassis 2     | S16 |                       |
  |  |     |                   |     |                       |
  |  |     |                   |     |                       |
  |  |+---+|                   |     |                       |
  +---> 5 ||                   |     |                       |
     |+---+|                   |     |                       |
     |     |                   |     |                       |
     |     |                   |     |                       |
     +-------------------------------+                       |
                                                             |
                                                             |
                          +-------------------------------+  |
                          |  S1 |     Chassis 3     | S16 |  |
                          |     |                   |     |  |
                          |     |                   |     |  |
                          |     |                   |     |  |
                          |     |                   |+---+|  |
                          |     |                   || 7 |<--+
                          |     |                   |+---+|
                          |     |                   |     |
                          +-------------------------------+
]]></artwork>
        </artset>
      </figure>
      <t>Using the base network inventory YANG data model each interconnected switch can be modelled as a chassis within the same network element, which models the cascaded switch. The ports used to interconnect the different chassis are normal (traffic) ports and modelled like other ports. The interconnecting cables are not reported using the base network inventory YANG data model but can be reported using the passive network inventory model under definition in <xref target="I-D.ygb-ivy-passive-network-inventory"/>.</t>
      <section anchor="json-examples-1">
        <name>JSON Examples</name>
        <t>This appendix contains an example of an instance data tree in JSON encoding <xref target="RFC7951"/>, instantiating the "ietf-network-inventory" model to describe the three examples of multi-chassis NEs, as shown in <xref target="fig-daisy-chain-stacked"/>, <xref target="fig-ring-stacked"/> and <xref target="fig-tree-cascaded"/>.</t>
        <ul empty="true">
          <li>
            <t>Note: the base inventory model allows reporting only the chassis and ports configuration. Reporting the link between the chassis of the same NE is outside the scope of the base inventory model. The YANG data model under definition in <xref target="I-D.ygb-ivy-passive-network-inventory"/> as an augmentation of the base inventory YANG data model can be used to provide this additional information.</t>
          </li>
        </ul>
        <artwork type="ascii-art"><![CDATA[
=============== NOTE: '\' line wrapping per RFC 8792 ================

{
  "ietf-network-inventory:network-inventory": {
    "network-elements": {
      "network-element" : [
        {
          "ne-id": "NE-1",
          "description": "Stack Switch in a daisy chain topology.",
          "components": {
            "component": [
              {
                "component-id": "chassis-1",
                "class": "iana-hardware:chassis",
                "description": "First switch of the stack.",
                "parent-rel-pos": "1",
                "is-fru": true
              },
              {
                "component-id": "port-1-1",
                "class": "iana-hardware:port",
                "description": "First stack port of the first \
                                               switch in the stack.",
                "parent": [
                  "chassis-1"
                ],
                "parent-rel-pos": "1"
              },
              {
                "component-id": "port-1-2",
                "class": "iana-hardware:port",
                "description": "Second stack port of the first \
                                               switch in the stack.",
                "parent": [
                  "chassis-1"
                ],
                "parent-rel-pos": "2"
              },
              {
                "component-id": "transceiver-module-1-2",
                "class": "iana-hardware:module",
                "description": "Transceiver module plugged in the \
                second stack port of the first switch in the stack.",
                "parent": [
                  "port-1-2"
                ],
                "is-fru": true
              },
              {
                "component-id": "chassis-2",
                "class": "iana-hardware:chassis",
                "description": "Second switch of the stack.",
                "parent-rel-pos": "2",
                "is-fru": true
              },
              {
                "component-id": "port-2-1",
                "class": "iana-hardware:port",
                "description": "First stack port of the second \
                                               switch in the stack.",
                "parent": [
                  "chassis-2"
                ],
                "parent-rel-pos": "1"
              },
              {
                "component-id": "transceiver-module-2-1",
                "class": "iana-hardware:module",
                "description": "Transceiver module plugged in the \
                 first stack port of the first switch in the stack.",
                "parent": [
                  "port-2-1"
                ],
                "is-fru": true
              },
              {
                "component-id": "port-2-2",
                "class": "iana-hardware:port",
                "description": "Second stack port of the second \
                                               switch in the stack.",
                "parent": [
                  "chassis-2"
                ],
                "parent-rel-pos": "2"
              },
              {
                "component-id": "transceiver-module-2-2",
                "class": "iana-hardware:module",
                "description": "Transceiver module plugged in the \
                second stack port of the first switch in the stack.",
                "parent": [
                  "port-2-2"
                ],
                "is-fru": true
              },
              {
                "component-id": "chassis-3",
                "class": "iana-hardware:chassis",
                "description": "Third switch of the stack.",
                "parent-rel-pos": "3",
                "is-fru": true
              },
              {
                "component-id": "port-3-1",
                "class": "iana-hardware:port",
                "description": "First stack port of the third \
                                               switch in the stack.",
                "parent": [
                  "chassis-3"
                ],
                "parent-rel-pos": "1"
              },
              {
                "component-id": "transceiver-module-3-1",
                "class": "iana-hardware:module",
                "description": "Transceiver module plugged in the \
                 first stack port of the third switch in the stack.",
                "parent": [
                  "port-3-1"
                ],
                "is-fru": true
              },
              {
                "component-id": "port-3-2",
                "class": "iana-hardware:port",
                "description": "Second stack port of the second \
                                               switch in the stack.",
                "parent": [
                  "chassis-3"
                ],
                "parent-rel-pos": "2"
              }
            ]
          }
        },
        {
          "ne-id": "NE-2",
          "description": "Stack Switch in a ring topology.",
          "components": {
            "component": [
              {
                "component-id": "chassis-1",
                "class": "iana-hardware:chassis",
                "description": "First switch of the stack.",
                "parent-rel-pos": "1",
                "is-fru": true
              },
              {
                "component-id": "port-1-1",
                "class": "iana-hardware:port",
                "description": "First stack port of the first \
                                               switch in the stack.",
                "parent": [
                  "chassis-1"
                ],
                "parent-rel-pos": "1"
              },
              {
                "component-id": "transceiver-module-1-1",
                "class": "iana-hardware:module",
                "description": "Transceiver module plugged in the \
                 first stack port of the first switch in the stack.",
                "parent": [
                  "port-1-1"
                ],
                "is-fru": true
              },
              {
                "component-id": "port-1-2",
                "class": "iana-hardware:port",
                "description": "Second stack port of the first \
                                               switch in the stack.",
                "parent": [
                  "chassis-1"
                ],
                "parent-rel-pos": "2"
              },
              {
                "component-id": "transceiver-module-1-2",
                "class": "iana-hardware:module",
                "description": "Transceiver module plugged in the \
                second stack port of the first switch in the stack.",
                "parent": [
                  "port-1-2"
                ],
                "is-fru": true
              },
              {
                "component-id": "chassis-2",
                "class": "iana-hardware:chassis",
                "description": "Second switch of the stack.",
                "parent-rel-pos": "2",
                "is-fru": true
              },
              {
                "component-id": "port-2-1",
                "class": "iana-hardware:port",
                "description": "First stack port of the second \
                                               switch in the stack.",
                "parent": [
                  "chassis-2"
                ],
                "parent-rel-pos": "1"
              },
              {
                "component-id": "transceiver-module-2-1",
                "class": "iana-hardware:module",
                "description": "Transceiver module plugged in the \
                first stack port of the second switch in the stack.",
                "parent": [
                  "port-2-1"
                ],
                "is-fru": true
              },
              {
                "component-id": "port-2-2",
                "class": "iana-hardware:port",
                "description": "Second stack port of the second \
                                               switch in the stack.",
                "parent": [
                  "chassis-2"
                ],
                "parent-rel-pos": "2"
              },
              {
                "component-id": "transceiver-module-2-2",
                "class": "iana-hardware:module",
                "description": "Transceiver module plugged in the \
               second stack port of the second switch in the stack.",
                "parent": [
                  "port-2-2"
                ],
                "is-fru": true
              },
              {
                "component-id": "chassis-3",
                "class": "iana-hardware:chassis",
                "description": "Third switch of the stack.",
                "parent-rel-pos": "3",
                "is-fru": true
              },
              {
                "component-id": "port-3-1",
                "class": "iana-hardware:port",
                "description": "First stack port of the third \
                                               switch in the stack.",
                "parent": [
                  "chassis-3"
                ],
                "parent-rel-pos": "1"
              },
              {
                "component-id": "transceiver-module-3-1",
                "class": "iana-hardware:module",
                "description": "Transceiver module plugged in the \
                 first stack port of the third switch in the stack.",
                "parent": [
                  "port-3-1"
                ],
                "is-fru": true
              },
              {
                "component-id": "port-3-2",
                "class": "iana-hardware:port",
                "description": "Second stack port of the third \
                                               switch in the stack.",
                "parent": [
                  "chassis-3"
                ],
                "parent-rel-pos": "2"
              },
              {
                "component-id": "transceiver-module-3-2",
                "class": "iana-hardware:module",
                "description": "Transceiver module plugged in the \
                second stack port of the third switch in the stack.",
                "parent": [
                  "port-3-2"
                ],
                "is-fru": true
              }
            ]
          }
        },
        {
          "ne-id": "NE-3",
          "description": "Cascaded Switch in a tree topology.",
          "components": {
            "component": [
              {
                "component-id": "chassis-1",
                "class": "iana-hardware:chassis",
                "description": "First chassis of the cascaded switch\
                                                                  .",
                "parent-rel-pos": "1",
                "is-fru": true
              },
              {
                "component-id": "slot-1-1",
                "class": "iana-hardware:container",
                "description": "Slot 1 of the first chassis of the \
                                                   cascaded switch.",
                "parent": [
                  "chassis-1"
                ],
                "parent-rel-pos": "1"
              },
              {
                "component-id": "card-1-1",
                "class": "iana-hardware:module",
                "description": "Card plugged into slot 1 of the \
                              first chassis of the cascaded switch.",
                "parent": [
                  "slot-1-1"
                ],
                "is-fru": true
              },
              {
                "component-id": "port-1-1-1",
                "class": "iana-hardware:port",
                "description": "Empty port 1 on the card plugged \
           into slot 1 of the first chassis of the cascaded switch.",
                "parent": [
                  "card-1-1"
                ],
                "parent-rel-pos": "1"
              },
              {
                "component-id": "port-1-1-4",
                "class": "iana-hardware:port",
                "description": "Pluggable port 4 on the card \
   plugged into slot 1 of the first chassis of the cascaded switch.",
                "parent": [
                  "card-1-1"
                ],
                "parent-rel-pos": "4"
              },
              {
                "component-id": "transceiver-module-1-1-4",
                "class": "iana-hardware:module",
                "description": "Transceiver module plugged in port \
4 on the card plugged into slot 1 of the first chassis of the \
                                                   cascaded switch.",
                "parent": [
                  "port-1-1-4"
                ],
                "is-fru": true
              },
              {
                "component-id": "port-1-1-10",
                "class": "iana-hardware:port",
                "description": "Empty port 10 on the card plugged \
           into slot 1 of the first chassis of the cascaded switch.",
                "parent": [
                  "card-1-1"
                ],
                "parent-rel-pos": "10"
              },
              {
                "component-id": "slot-1-20",
                "class": "iana-hardware:container",
                "description": "Empty slot 20 of the first chassis \
                                            of the cascaded switch.",
                "parent": [
                  "chassis-1"
                ],
                "parent-rel-pos": "20"
              },
              {
                "component-id": "slot-1-32",
                "class": "iana-hardware:container",
                "description": "Slot 32 of the first chassis of the \
                                                   cascaded switch.",
                "parent": [
                  "chassis-1"
                ],
                "parent-rel-pos": "32"
              },
              {
                "component-id": "card-1-32",
                "class": "iana-hardware:module",
                "description": "Card plugged into slot 32 of the \
                              first chassis of the cascaded switch.",
                "parent": [
                  "slot-1-32"
                ],
                "is-fru": true
              },
              {
                "component-id": "port-1-32-1",
                "class": "iana-hardware:port",
                "description": "Empty port 1 on the card plugged \
          into slot 32 of the first chassis of the cascaded switch.",
                "parent": [
                  "card-1-32"
                ],
                "parent-rel-pos": "1"
              },
              {
                "component-id": "port-1-32-6",
                "class": "iana-hardware:port",
                "description": "Pluggable port 6 on the card \
  plugged into slot 32 of the first chassis of the cascaded switch.",
                "parent": [
                  "card-1-32"
                ],
                "parent-rel-pos": "6"
              },
              {
                "component-id": "transceiver-module-1-32-6",
                "class": "iana-hardware:module",
                "description": "Transceiver module plugged in port \
6 on the card plugged into slot 32 of the first chassis of the \
                                                   cascaded switch.",
                "parent": [
                  "port-1-32-6"
                ],
                "is-fru": true
              },
              {
                "component-id": "port-1-32-10",
                "class": "iana-hardware:port",
                "description": "Empty port 10 on the card plugged \
          into slot 32 of the first chassis of the cascaded switch.",
                "parent": [
                  "card-1-32"
                ],
                "parent-rel-pos": "10"
              },
              {
                "component-id": "chassis-2",
                "class": "iana-hardware:chassis",
                "description": "Second chassis of the cascaded \
                                                            switch.",
                "parent-rel-pos": "2",
                "is-fru": true
              },
              {
                "component-id": "slot-2-1",
                "class": "iana-hardware:container",
                "description": "Slot 1 of the second chassis of the \
                                                   cascaded switch.",
                "parent": [
                  "chassis-2"
                ],
                "parent-rel-pos": "1"
              },
              {
                "component-id": "card-2-1",
                "class": "iana-hardware:module",
                "description": "Card plugged into slot 1 of the \
                             second chassis of the cascaded switch.",
                "parent": [
                  "slot-2-1"
                ],
                "is-fru": true
              },
              {
                "component-id": "port-2-1-5",
                "class": "iana-hardware:port",
                "description": "Pluggable port 5 on the card \
  plugged into slot 1 of the second chassis of the cascaded switch.",
                "parent": [
                  "card-2-1"
                ],
                "parent-rel-pos": "5"
              },
              {
                "component-id": "transceiver-module-2-1-5",
                "class": "iana-hardware:module",
                "description": "Transceiver module plugged in port \
5 on the card plugged into slot 1 of the second chassis of the \
                                                   cascaded switch.",
                "parent": [
                  "port-2-1-5"
                ],
                "is-fru": true
              },
              {
                "component-id": "slot-2-16",
                "class": "iana-hardware:container",
                "description": "Slot 16 of the second chassis of \
                                               the cascaded switch.",
                "parent": [
                  "chassis-2"
                ],
                "parent-rel-pos": "16"
              },
              {
                "component-id": "chassis-3",
                "class": "iana-hardware:chassis",
                "description": "Third chassis of the cascaded switch\
                                                                  .",
                "parent-rel-pos": "3",
                "is-fru": true
              },
              {
                "component-id": "slot-3-1",
                "class": "iana-hardware:container",
                "description": "Empty slot 1 of the third chassis \
                                            of the cascaded switch.",
                "parent": [
                  "chassis-3"
                ],
                "parent-rel-pos": "1"
              },
              {
                "component-id": "slot-3-16",
                "class": "iana-hardware:container",
                "description": "Slot 16 of the third chassis of the \
                                                   cascaded switch.",
                "parent": [
                  "chassis-3"
                ],
                "parent-rel-pos": "16"
              },
              {
                "component-id": "card-3-16",
                "class": "iana-hardware:module",
                "description": "Card plugged into slot 16 of the \
                              third chassis of the cascaded switch.",
                "parent": [
                  "slot-3-16"
                ],
                "is-fru": true
              },
              {
                "component-id": "port-3-16-7",
                "class": "iana-hardware:port",
                "description": "Pluggable port 7 on the card \
  plugged into slot 16 of the third chassis of the cascaded switch.",
                "parent": [
                  "card-3-16"
                ],
                "parent-rel-pos": "7"
              },
              {
                "component-id": "transceiver-module-3-16-7",
                "class": "iana-hardware:module",
                "description": "Transceiver module plugged in port \
7 on the card plugged into slot 16 of the third chassis of the \
                                                   cascaded switch.",
                "parent": [
                  "port-3-16-7"
                ],
                "is-fru": true
              }
            ]
          }
        }
      ]
    }
  }
}
]]></artwork>
      </section>
    </section>
    <section anchor="non-modular-examples">
      <name>Example of non-modular network elements</name>
      <t>This appendix provides some examples of non-modular network elements and how they can be modelled using the "ietf-network-inventory" module defined in <xref target="ni-yang"/>.</t>
      <t>Non-modular network elements (also known as "pizza boxes") are network elements composed by a single chassis as a self-contained system. A non-modular network element does not have any slots to take cards so it cannot take any non-field replaceable modules other than pluggable ports.</t>
      <t><xref target="fig-pizza-box"/> describes an example of a pizza box with 8 ports.</t>
      <figure anchor="fig-pizza-box">
        <name>Example of an 8 ports pizza box device</name>
        <artset>
          <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="128" width="432" viewBox="0 0 432 128" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 8,32 L 8,96" fill="none" stroke="black"/>
              <path d="M 24,48 L 24,80" fill="none" stroke="black"/>
              <path d="M 56,48 L 56,80" fill="none" stroke="black"/>
              <path d="M 72,48 L 72,80" fill="none" stroke="black"/>
              <path d="M 104,48 L 104,80" fill="none" stroke="black"/>
              <path d="M 120,48 L 120,80" fill="none" stroke="black"/>
              <path d="M 152,48 L 152,80" fill="none" stroke="black"/>
              <path d="M 168,48 L 168,80" fill="none" stroke="black"/>
              <path d="M 200,48 L 200,80" fill="none" stroke="black"/>
              <path d="M 216,48 L 216,80" fill="none" stroke="black"/>
              <path d="M 248,48 L 248,80" fill="none" stroke="black"/>
              <path d="M 264,48 L 264,80" fill="none" stroke="black"/>
              <path d="M 296,48 L 296,80" fill="none" stroke="black"/>
              <path d="M 312,48 L 312,80" fill="none" stroke="black"/>
              <path d="M 344,48 L 344,80" fill="none" stroke="black"/>
              <path d="M 360,48 L 360,80" fill="none" stroke="black"/>
              <path d="M 392,48 L 392,80" fill="none" stroke="black"/>
              <path d="M 408,32 L 408,96" fill="none" stroke="black"/>
              <path d="M 8,32 L 408,32" fill="none" stroke="black"/>
              <path d="M 24,48 L 56,48" fill="none" stroke="black"/>
              <path d="M 72,48 L 104,48" fill="none" stroke="black"/>
              <path d="M 120,48 L 152,48" fill="none" stroke="black"/>
              <path d="M 168,48 L 200,48" fill="none" stroke="black"/>
              <path d="M 216,48 L 248,48" fill="none" stroke="black"/>
              <path d="M 264,48 L 296,48" fill="none" stroke="black"/>
              <path d="M 312,48 L 344,48" fill="none" stroke="black"/>
              <path d="M 360,48 L 392,48" fill="none" stroke="black"/>
              <path d="M 24,80 L 56,80" fill="none" stroke="black"/>
              <path d="M 72,80 L 104,80" fill="none" stroke="black"/>
              <path d="M 120,80 L 152,80" fill="none" stroke="black"/>
              <path d="M 168,80 L 200,80" fill="none" stroke="black"/>
              <path d="M 216,80 L 248,80" fill="none" stroke="black"/>
              <path d="M 264,80 L 296,80" fill="none" stroke="black"/>
              <path d="M 312,80 L 344,80" fill="none" stroke="black"/>
              <path d="M 360,80 L 392,80" fill="none" stroke="black"/>
              <path d="M 8,96 L 408,96" fill="none" stroke="black"/>
              <g class="text">
                <text x="40" y="68">1</text>
                <text x="88" y="68">2</text>
                <text x="136" y="68">3</text>
                <text x="184" y="68">4</text>
                <text x="232" y="68">5</text>
                <text x="280" y="68">6</text>
                <text x="328" y="68">7</text>
                <text x="376" y="68">8</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art"><![CDATA[
    +-------------------------------------------------+
    | +---+ +---+ +---+ +---+ +---+ +---+ +---+ +---+ |
    | | 1 | | 2 | | 3 | | 4 | | 5 | | 6 | | 7 | | 8 | |
    | +---+ +---+ +---+ +---+ +---+ +---+ +---+ +---+ |  
    +-------------------------------------------------+
]]></artwork>
        </artset>
      </figure>
      <t>Using the base network inventory YANG data model a non-modular network element can be modelled as a network element containing only one chassis and ports (as child components of the chassis).</t>
      <t>Reporting the single chassis component within a non-modular network element is required because the chassis component is the type of component which provides the physical characteristics of the network element chassis (the network element is defined just as an assembly of components) and its location, using the network inventory YANG data model under definition in <xref target="I-D.ietf-ivy-network-inventory-location"/>.</t>
      <section anchor="json-examples-2">
        <name>JSON Examples</name>
        <t>This appendix contains an example of an instance data tree in JSON encoding <xref target="RFC7951"/>, instantiating the "ietf-network-inventory" module to describe the pizza box example, as shown in <xref target="fig-pizza-box"/>.</t>
        <artwork type="ascii-art"><![CDATA[
{
  "ietf-network-inventory:network-inventory": {
    "network-elements": {
      "network-element" : [
        {
          "ne-id": "Pizza-box-NE",
          "description": "Example of a pizza box NE.",
          "components": {
            "component": [
              {
                "component-id": "pizza-chassis",
                "class": "iana-hardware:chassis",
                "description": "Pizza box chassis.",
                "is-fru": true
              },
              {
                "component-id": "port-1",
                "class": "iana-hardware:port",
                "description": "Port 1 of the pizza box.",
                "parent": [
                  "pizza-chassis"
                ],
                "parent-rel-pos": "1"
              },
              {
                "component-id": "port-2",
                "class": "iana-hardware:port",
                "description": "Port 2 of the pizza box.",
                "parent": [
                  "pizza-chassis"
                ],
                "parent-rel-pos": "2"
              },
              {
                "component-id": "port-3",
                "class": "iana-hardware:port",
                "description": "Port 3 of the pizza box.",
                "parent": [
                  "pizza-chassis"
                ],
                "parent-rel-pos": "3"
              },
              {
                "component-id": "port-4",
                "class": "iana-hardware:port",
                "description": "Port 4 of the pizza box.",
                "parent": [
                  "pizza-chassis"
                ],
                "parent-rel-pos": "4"
              },
              {
                "component-id": "port-5",
                "class": "iana-hardware:port",
                "description": "Port 5 of the pizza box.",
                "parent": [
                  "pizza-chassis"
                ],
                "parent-rel-pos": "5"
              },
              {
                "component-id": "port-6",
                "class": "iana-hardware:port",
                "description": "Port 6 of the pizza box.",
                "parent": [
                  "pizza-chassis"
                ],
                "parent-rel-pos": "6"
              },
              {
                "component-id": "port-7",
                "class": "iana-hardware:port",
                "description": "Port 7 of the pizza box.",
                "parent": [
                  "pizza-chassis"
                ],
                "parent-rel-pos": "7"
              },
              {
                "component-id": "port-8",
                "class": "iana-hardware:port",
                "description": "Port 8 of the pizza box.",
                "parent": [
                  "pizza-chassis"
                ],
                "parent-rel-pos": "8"
              }
            ]
          }
        }
      ]
    }
  }
}
]]></artwork>
      </section>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The authors of this document would like to thank the authors of <xref target="I-D.ietf-teas-actn-poi-applicability"/> for having identified the gap and requirements to trigger this work.</t>
      <t>The authors of this document would like to thank
Adrian Farrel,
Alexander Clemm,
Brad Peters,
Camilo Cardona,
Daniele Ceccarelli,
Gabriele Galimberti,
Jan Lindblad,
Joe Clarke,
Mahesh Jethanandani,
Mohamed Boucadair,
Prasenjit Manna,
Rob Wilton,
Qin Wu,
Qiufang Ma, and
Swamynathan B
for their valuable input to the technical discussions during the development of this document.</t>
      <t>This document was prepared using kramdown.</t>
    </section>
    <section anchor="contributors" numbered="false" toc="include" removeInRFC="false">
      <name>Contributors</name>
      <contact initials="I." surname="Busi" fullname="Italo Busi">
        <organization>Huawei Technologies</organization>
        <address>
          <email>italo.busi@huawei.com</email>
        </address>
      </contact>
      <contact initials="A." surname="Guo" fullname="Aihua Guo">
        <organization>Futurewei Technologies</organization>
        <address>
          <email>aihuaguo.ietf@gmail.com</email>
        </address>
      </contact>
      <contact initials="V." surname="Lopez" fullname="Victor Lopez">
        <organization>Nokia</organization>
        <address>
          <email>victor.lopez@nokia.com</email>
        </address>
      </contact>
      <contact initials="B." surname="Wu" fullname="Bo Wu">
        <organization>Huawei Technologies</organization>
        <address>
          <email>lana.wubo@huawei.com</email>
        </address>
      </contact>
      <contact initials="C." surname="Zhang" fullname="Chenfang Zhang">
        <organization>China Unicom</organization>
        <address>
          <email>zhangcf80@chinaunicom.cn</email>
        </address>
      </contact>
      <contact initials="O." surname="Gonzalez de Dios" fullname="Oscar Gonzalez de Dios">
        <organization>Telefonica</organization>
        <address>
          <email>oscar.gonzalezdedios@telefonica.com</email>
        </address>
      </contact>
      <contact initials="N." surname="Davis" fullname="Nigel Davis">
        <organization>Ciena</organization>
        <address>
          <email>ndavis@ciena.com</email>
        </address>
      </contact>
      <contact initials="R." surname="Manzotti" fullname="Roberto Manzotti">
        <organization>Cisco</organization>
        <address>
          <email>rmanzott@cisco.com</email>
        </address>
      </contact>
    </section>
  </back>
  <!-- ##markdown-source:
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
is7t+TuZtSyFK59Q1LO2mjvkER5bToTcBIbgRNMIA39sc0VmBX73xHP2TsTY
KGxDGhLoKB4dYlLnWFGwlj9y95XGzJYuNwsKIo/V5Ab1tA05LS2v7CbvC8SZ
gE+hh6H9SyZ9kb80xecIllhlp1gnSUqTH55e5jUXEs9KMM8tLMoZWb8wigG5
YDXSAIi+YtlkGbFWE8ly/YS9YzgoVcBNO2bvADIsZpH2U/J7JUnmdorm1hMy
3wG3HQwobnqs80JZzgy1ATiuAEQZQE6gPUAHbW25EyoGOSISyqhepIyXQPtK
WL9pmHXRnk7RR5YdmGzvPdE+thrnbA1oigyi8aSAiVIyKczgh90SidF+m8qy
pbwzeae6E6DoKIqwaltG0rZxs1B823gAERLbHkomNQjzME0yq+ZgPszRBypE
kQhR9OGK5RBD3EO1LOGuarKTADWGe9Q5LlYUXJ7ZamejIwyBpaUx7sfcQ2n3
ouEkQR3E3CWdobm+honrDGcoD/MLJo8qKZtbAtGbxkQWPovLVDx5E8pX40qC
2uXVPviqVFzcs9ikjA4yg7DlZKvOINkwVncbUGY3amXLbCbezDElGBaY+pAS
7q+CJ7OGygr8fPKpoUEbHtaQss7gaScb5VdbXhZq9BFjbRdNiV7bXtP1Ybkc
jqkFM4tEy9SeQBcXrxy02WAQoC7VhW42TAILe4a2MdgBBU59ZA/EPiuuj9+p
q4LrOWWf1YbHj/LnCg1UK8EnhHqZ5D5WUc7KYZ9iTMmSrCdUd9ewDPMYS1Z3
vbVDKvEMPupitOQnZc5Uvz9RchKGgB1OqejRAn/RZTmtNq2MVlvagpkPoqgL
1FNKdHsNgX0tUq8z7VLkvBHVl0oJblmqef31n8U/yLvlt5arxFNJpAvmw3D3
lkMt+Gf1VLmsA/uoF0aH05+tpwiKPXzoaRfomV20qX9yrPx5eTmLLf+8qJyt
UCJ4YBgOdD7aA2zuVBdTp90/Ly5G0h70p4pX+xTV9hbNQXnxKLA0lbN9fPzj
c8tB3wthZzlLCudTeQ3ztLnPb3UjU6WCRsV6z055ik6xPxTK0lS8io0N+GhX
qWLlshFVsXNZ+SqWLiu/DFv5syLOVgovxtxK4YX4q8uK1bDYnmEVl5eVr+L0
svK2D8wq5ZXHiRkPIQ0+6mJOG8yU1jg2IyOvtrq2D0XDzrPLq0P/VWHF5/g2
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
LUOyO7nU99JqIqUWzIIobcY9s9ve/rr/6umb/VeHbw9eHp++PDk8OWcjiScY
lQbrXHRQHRHlw7kCBFTOHm/NxpdLGrUzhtRqNr5c0qgOqfeNtPHlCo1S4FZT
o96XSxrVS6fylto1nei+NRpVl8R5G3UT7DuvoiKc5nb6B+qY3OTsDEG6fYeO
Y8e63i11bO4crHYsY7ZSD0AqAV2rg5HDnzxNYk07cK7yamGjgziMuuhX4GsU
4xH8NcXBi8MjSivsu0QGvdNQ1PQdSN7fQZMNd86XoqFpwNODDKLxvVo4I31f
fVmjgItqMqNhJldvlHwym2ouaJSjhLOQT5hqvpmETSRJyuMEdSN5Lj3pyJ5v
/ABUfA8PRyIFNuTvXTtH6uitFcZM6zIsk2GAVdPK4iyc7ahMBtLPxLFRSxOR
Sl8yKinltbzG0Owa4BZFNweBcTBBGRTGHeRy01595aqNkkV/hbksbzQL6TJM
a5Q316g1yus16oJzOHdqXrVRtGKjRo2rWKu5oFFpnSFHbadp4mdADDL/Hrt6
o3j0i06Awy7ftLtqozT9bU/T2CgK0fX2rtnobBA1y3MLGg1AKwCRt75S1GiG
1JCyIK7V6HOpvlj1JRHi8FAnG1HbEovajHRl37Kord5t8yv0p2OZVbnSHXgk
Vq1hCK0LcHrGugpDl1fv4z3HAokQe3wQk7LjYIBRsf+W2Q3YYG0J5Xk0iQzq
EAmVDltl4jNLyjPBptxAaZJ8vmjFJVpMkwzmzDasGtLvIg/RmlGEsbxHuFCJ
LCRNosqG25gA8CIrKWUFaUdezazD9/9ii8jN1YgoC32QdMi6AYWTsGPZHroD
kBD5itOOzG2nWZYDnpx00wJztGtZCgcXxGQstnwS5aWAAd4GQFPnY8jAzuKh
He9IyYXdick+itTRTnWe8DXVGjJfeJPsKKuXMYm5ahXGUuPBOF3joM0u8rJf
vNxRXqDgAp9wFqehjltdB7yGK9K3aUSkFq85v48Nk1usDK+jBVNTB7/un50d
nTXv8CopUJ65VTrwUTzZP/hfpy/2Tw5XbUqjaq2pZ/tPXh0drDooVKvYtukZ
1enLN4ev3p69Pj198feVmiL+0ZU3v1dGdbLykKgp2JC+59zU2/NX+6uMiJtq
nqBqCnDn5PzVyxcvDl9dtamzw5OzlwtrV5pCE39aY7bY1Iujk8MDwOqVm2oe
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
WTAdgt7Za/1/9WuaBgt9AQA=

-->

</rfc>
