<?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.29 (Ruby 3.2.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-ivy-network-inventory-yang-11" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.31.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-11"/>
    <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="2025" month="October" day="14"/>
    <keyword>next generation</keyword>
    <keyword>unicorn</keyword>
    <keyword>sparkling distributed ledger</keyword>
    <abstract>
      <?line 103?>

<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 108?>

<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 I-D, 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 is a fundamental functional block in the overall network
management which was specified many years ago. Network inventory management is a critical
part for ensuring that the network remains healthy (e.g., auditing to identify faulty elements), well-planned (e.g., identify assets to upgrade or to decommission), and 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 elements capabilities 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="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>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>
        </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>configuration data</t>
          </li>
          <li>
            <t>state data</t>
          </li>
        </ul>
        <t>The following terms are defined in <xref target="RFC8342"/> and are not redefined here:</t>
        <ul spacing="normal">
          <li>
            <t>applied configuration</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>
        <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>
        </dl>
        <t>Also, the document makes use of the following terms:</t>
        <dl>
          <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, 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>A 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 (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="RFC6991"/></td>
            </tr>
            <tr>
              <td align="left">yang</td>
              <td align="left">ietf-yang-types</td>
              <td align="left">
                <xref section="3" sectionFormat="of" target="RFC6991"/></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>
    <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-readable label information of the inventory object, which could be assigned by the server. It could also be present on a Graphical User Interface (GUI).</t>
          </dd>
          <dt>alias:</dt>
          <dd>
            <t>A human-readable label information 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-readable 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 NE within the network, assigned by the server since the network elements cannot guaranteed 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 network elements:</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>serial-number:</dt>
          <dd>
            <t>The vendor-specific serial number of the 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>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>Based on TMF classification in <xref target="TMF_SD2-20"/>, hardware components can be divided 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.</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="228" y="228">chassis/</text>
                    <text x="224" y="244">sub-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/  |---+
                              | sub-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>This document defines a "software-rev" list for NEs and components, which provide
basic software attributes for network elements and components.</t>
          <t>The scope of the list is to provide information about the software modules configured to be active
on the related entity (network element or component).</t>
          <t>The model supports scenarios where multiple software modules can be configured to be active on the entity. For example, on a network element an Operating System and an Application software modules can be configured to be active; 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 configured to be active.</t>
          <t>For each software module, configured to be active, 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 of other
classes, such as platform software, BIOS, bootloader, and software
patch information, are outside the scope of this document and defined 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 we suggest to rename it as "part-number" directly.</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>
    </section>
    <section anchor="ni-tree">
      <name>Network Inventory Tree Diagram</name>
      <t><xref target="fig-ni-tree"/> below 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-rel-pos?   int32
                 +--ro parent*
                 |       -> ../../component/component-id
                 +--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@2025-10-07.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 6991: Common YANG Data Types";
  }
  import ietf-inet-types {
    prefix inet;
    reference
      "RFC 6991: Common YANG Data Types";
  }

  organization
    "IETF IVY Working Group";
  contact
    "WG Web:   <https://datatracker.ietf.org/wg/ivy/>
     WG List:  <mailto:inventory-yang@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) 2025 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.";

  // RFC Ed.: update the date below with the date of RFC publication
  // and remove this note.

  revision 2025-10-09 {
    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";
    }
    description
      "This type is intended to be used by data models that need to
       reference Network Element.";
  }

  /*
   * Groupings
   */

  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";
      }
      must "derived-from-or-self (/nwi:network-inventory/
            nwi:network-elements/nwi:network-element
            [nwi:ne-id=../ne-ref]/nwi:components/nwi:component
            [nwi:component-id=current()]/nwi:class, 'ianahw:port')";
      description
        "The reference to the port component.";
    }
  }

  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 and that can be modified anytime during the
         entity lifetime.

         If no configured value exists, 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 configured to be active
         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 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 physical
           component.
           The preferred value is the manufacturer name
           string actually printed on the component itself
           (if present).

           Note that comparisons between instances of the
           'model-name', '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 physical 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 the entity
         (e.g., component) instance. It is expected that vendors
         assign unique serial numbers to different network element
         instances within the scope of the product name.";
    }
    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 NE type.";
        }
        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 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 int32 {
                range "0 .. 2147483647";
              }
              description
                "The relative position with respect to the parent
                 component among all the sibling components.";
              reference
                "RFC 6933: Entity MIB (Version 4) -
                           entPhysicalParentRelPos";
            }
            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 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
                 there are chassis components which can take the
                 'main' role (e.g., multi-chassis network elements),
                 otherwise it is omitted.";
            }
          }
        }
      }
    }
  }
}
]]></sourcecode>
      </figure>
    </section>
    <section anchor="operational-considerations">
      <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>As outlined in <xref target="intro"/>, per the definition of <xref target="RFC8969"/>, the network inventory model is a network model.</t>
      <t>This information can be provided by a network controller to an 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 populated by controller 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 an an higher level network controller, to an Inventory OSS or to any other type of application which needs to discover the network inventory information.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>This section is modeled after the template described in <xref section="3.7" sectionFormat="of" target="I-D.ietf-netmod-rfc8407bis"/>.</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. Specifically, the following
subtrees and data nodes have particular sensitivities/
vulnerabilities:</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>
      <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: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="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="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="RFC6991">
          <front>
            <title>Common YANG Data Types</title>
            <author fullname="J. Schoenwaelder" initials="J." role="editor" surname="Schoenwaelder"/>
            <date month="July" year="2013"/>
            <abstract>
              <t>This document introduces a collection of common data types to be used with the YANG data modeling language. This document obsoletes RFC 6021.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6991"/>
          <seriesInfo name="DOI" value="10.17487/RFC6991"/>
        </reference>
        <reference anchor="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="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="9" month="October" year="2025"/>
            <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-16"/>
        </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="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="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="7" month="July" year="2025"/>
            <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-03"/>
        </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="10" month="June" year="2025"/>
            <abstract>
              <t>   The base Network Inventory YANG model defines the physical network
   elements (NEs) and hardware components of NEs.  This document extends
   the base Network Inventory model for non-physical NEs (e.g.,
   controllers, virtual routers, virtual firewalls) and software
   components (e.g., platform operating system (OS), software-patch).

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-ivy-network-inventory-software-01"/>
        </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="I-D.ietf-netmod-rfc8407bis">
          <front>
            <title>Guidelines for Authors and Reviewers of Documents Containing YANG Data Models</title>
            <author fullname="Andy Bierman" initials="A." surname="Bierman">
              <organization>YumaWorks</organization>
            </author>
            <author fullname="Mohamed Boucadair" initials="M." surname="Boucadair">
              <organization>Orange</organization>
            </author>
            <author fullname="Qin Wu" initials="Q." surname="Wu">
              <organization>Huawei</organization>
            </author>
            <date day="5" month="June" year="2025"/>
            <abstract>
              <t>   This document provides guidelines for authors and reviewers of
   specifications containing YANG data models, including IANA-maintained
   modules.  Recommendations and procedures are defined, which are
   intended to increase interoperability and usability of Network
   Configuration Protocol (NETCONF) and RESTCONF Protocol
   implementations that utilize YANG modules.  This document obsoletes
   RFC 8407.

   Also, this document updates RFC 8126 by providing additional
   guidelines for writing the IANA considerations for RFCs that specify
   IANA-maintained modules.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-netmod-rfc8407bis-28"/>
        </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="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="Chaode Yu" initials="C." surname="Yu">
              <organization>Huawei</organization>
            </author>
            <author fullname="Aihua Guo" initials="A." surname="Guo">
              <organization>Futurewei</organization>
            </author>
            <author fullname="Italo Busi" initials="I." surname="Busi">
              <organization>Huawei</organization>
            </author>
            <author fullname="Mohammad Boroon" initials="M." surname="Boroon">
              <organization>Highstreet</organization>
            </author>
            <author fullname="Sergio Belotti" initials="S." surname="Belotti">
              <organization>Nokia</organization>
            </author>
            <author fullname="tom van caenegem" initials="T." surname="van caenegem">
              <organization>Nokia</organization>
            </author>
            <author fullname="Swaminathan 1. S." initials="S. 1." surname="S.">
              <organization>Nokia</organization>
            </author>
            <author fullname="Swaminathan B." initials="S." surname="B.">
              <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>
            <author fullname="Bin Yeong Yoon" initials="B. Y." surname="Yoon">
              <organization>ETRI</organization>
            </author>
            <author fullname="LIUYUCONG" initials="" surname="LIUYUCONG">
              <organization>China Mobile</organization>
            </author>
            <author fullname="Yang Zhao" initials="Y." surname="Zhao">
              <organization>China Mobile</organization>
            </author>
            <author fullname="Avinash Sakalabhaktula" initials="A." surname="Sakalabhaktula">
              <organization>Radisys</organization>
            </author>
            <date day="7" month="July" year="2025"/>
            <abstract>
              <t>   This document presents a YANG data model for tracking and managing
   passive network inventory.  The model enhances the base model
   outlined in [I-D.draft-ietf-ivy-network-inventory-yang] and is
   intended for use in the northbound interface of a domain controller
   as defined in [RFC8453].

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

<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" model which is the 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 below:</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"> </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">firmware-rev</td>
            <td align="left"> </td>
          </tr>
          <tr>
            <td align="left">software-version</td>
            <td align="left">software-rev</td>
            <td align="left"> </td>
          </tr>
          <tr>
            <td align="left">serial-no</td>
            <td align="left">serial-num</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"> </td>
            <td align="left">TBD</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">contained-child?</td>
            <td align="left">If there is no contained child, it is 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">TBD</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">TBD</td>
          </tr>
          <tr>
            <td align="left">used-power</td>
            <td align="left"> </td>
            <td align="left">TBD</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">TBD</td>
          </tr>
          <tr>
            <td align="left">subcomponents</td>
            <td align="left"> </td>
            <td align="left"> </td>
          </tr>
          <tr>
            <td align="left">chassis</td>
            <td align="left"> </td>
            <td align="left"> </td>
          </tr>
          <tr>
            <td align="left">port</td>
            <td align="left"> </td>
            <td align="left"> </td>
          </tr>
          <tr>
            <td align="left">power-supply</td>
            <td align="left"> </td>
            <td align="left">TBD</td>
          </tr>
          <tr>
            <td align="left">fan</td>
            <td align="left"> </td>
            <td align="left">Fan is considered as a specific board. And no need to define as a single component</td>
          </tr>
          <tr>
            <td align="left">fabric</td>
            <td align="left"> </td>
            <td align="left">TBD</td>
          </tr>
          <tr>
            <td align="left">storage</td>
            <td align="left"> </td>
            <td align="left">For Optical and IP technology, no need to manage storage on network element</td>
          </tr>
          <tr>
            <td align="left">cpu</td>
            <td align="left"> </td>
            <td align="left">For Optical and IP technology, no need to manage CPU on network element</td>
          </tr>
          <tr>
            <td align="left">integrated-circuit</td>
            <td align="left"> </td>
            <td align="left"> </td>
          </tr>
          <tr>
            <td align="left">backplane</td>
            <td align="left"> </td>
            <td align="left">Backplane is considered as a part of board. And no need to define as a single component</td>
          </tr>
          <tr>
            <td align="left">software-module</td>
            <td align="left"> </td>
            <td align="left">TBD</td>
          </tr>
          <tr>
            <td align="left">controller-card</td>
            <td align="left"> </td>
            <td align="left">Controller card is considered as a specific functional board. And no need to define as a single component</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. And for some component specific structures in "openconfig-platform", we consider some of them can be contained by our existing structure, such as fan, backplane, and controller-card, while some others do not need to be included in this network inventory model like storage and cpu.</t>
      <t>Mostly, our inventory data model can cover the attributes from OpenConfig.</t>
    </section>
    <section anchor="terminology-of-container">
      <name>Terminology of Container</name>
      <t>Within this document , with the term "container" we consider an 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="efficiency-issue">
      <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.  More discussions are needed to address these concerns.</t>
      <t>Considering that relational databases are widely used by traditional 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 current draft, 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 draft 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 draft. 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">Emply</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) Emply 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 ports and \
                                                         breakouts.",
          "components": {
            "component": [
              {
                "component-id": "board-1",
                "class": "iana-hardware:module",
                "description": "Network element example with ports \
                                                      and breakouts."
              },
              {
                "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:
- are connected using a daisy-chain or a ring topology
- are managed using a single IP Address
- synchronized software-upgrade
- use Priority/MAC-Addr(s) decide Master/Members selection and communication.</t>
      <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:
- are usually connected in a tree topology
- are managed using a single IP Address
- the root of the tree is configured as Master.</t>
      <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 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
              },
              {
                "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": 4
              },
              {
                "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": "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 (with a 1U horizontal oriented rectangular shape) 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>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 an example of a non-modular network element.</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
              },
              {
                "component-id": "port-9",
                "class": "iana-hardware:port",
                "description": "Port 9 of the pizza box.",
                "parent": [
                  "pizza-chassis"
                ],
                "parent-rel-pos": 9
              },
              {
                "component-id": "port-10",
                "class": "iana-hardware:port",
                "description": "Port 10 of the pizza box.",
                "parent": [
                  "pizza-chassis"
                ],
                "parent-rel-pos": 10
              }
            ]
          }
        }
      ]
    }
  }
}
]]></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>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>
    </section>
  </back>
  <!-- ##markdown-source:
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
ilSjt03tg05f47xtrh7vhxD8r8EccD0V218I/OALDkI5Uyo9X8ubwib+OFsh
PYSCtrMxkuIynXXdSineV39qrfV59Tvyd4uxjjc2/skKy9Hp+utrNGw9qrKc
29jbfWrlOF7tgIsmMB2vqzeddxMMJvjAkqmaNNdwpa7hcDk7hh2qnqDAB9n7
GoxWbI8FZZN7pCk2xx0dVzUKyrhQYQc6xKe90tIveU2kd3rBX9014myL9Tbo
3v3cS/JVVvfHTV7pXaY5Hxazf7cqfKucs6Y3UFpSuJmmKhtIoxg5ViUVOm3e
iJDFsDuHz3FLLAdKUofPr1ttpiyq0Lz4cJYg+CJiY5CWSbHZ621z6y3xrdjb
qLVdtCS5LFSyVI1fqxY8FaJTkZaOmmB+3Ex5OoTX+8LUvRLhH4yuwInwtT0v
xifH1M97528pXYv9Pc/iubhfe0f0emJv9/HTx1/vP3n8dOmYi3AmY2UwWOEK
Y2Ry1nDJPYWFiTBXvwqgocXUl2wlM0A/l74yxvfhFfd/Xl++z08kAbutt4h/
LIl/TnC/CuPzNHcAeF+j1q68T8zqp60xckz9cATZotdItfULleOhq6xMW41o
AnSFLbXrEuB9hdwTR6OtY1BJEaPdOpp91RnJP0pFV9lrqMxvp24SoKHgox/r
nGHZI1l6U3fEWstR9UjWR/Gf0Y9DcapS5vAkWUpw6iWany96g/mQTVqRce06
VF+KtoqXk7nlrJA59eOz/tTPEvpqtgaJyEydziIgT4WPU7LRCGYQrn5DZACH
j7aqPhCHmWOahGpWovoAhU4EoStsW/JOF5Wloq81HQJ/LACVP4pSH+m0fbXI
l059EKLp6ygPJSWn/LTEpU+bPszv9Qv096337kNFqrTZ+FDRer3RbvHDGHxa
A6SXvQEC/66NVnRbWN8sesT4o34J8LSH8/J7xpcmDEwcSZufk6tVSwY6UPlT
J5B7R726cCKcrdtZdo+7OVVlGaF6FnmB1xz6cdGyLN3a907MmSrieuySavJZ
pX/wgqyoQCw20iWqtYpqNVaAdDLyHJJ3KTbVGSJcEWZ3mYW+3NiyZO2zJ89U
BpiG0qF0qkzVQJmL9pIrDRnjXEbN+fMRW+jFiLFETKIx8gLWjCcggwJ8MGY/
IjBdOrKPVQP14gKdSvTx3CoKSXLMSvfFZ1d7DVWhqJXwWck5FpkCSuFb0ogP
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

-->

</rfc>
