<?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.24 (Ruby 3.2.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-ivy-network-inventory-yang-05" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.27.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-05"/>
    <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>TIM</organization>
      <address>
        <email>fabio.peruzzini@telecomitalia.it</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="February" day="28"/>
    <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 network inventory. The scope of this base model is set to
be application- and technology-agnostic. However, the data model is designed with appropriate provisions to ease
future augmentations 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 109?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>This document defines a base network inventory
YANG data model that is application- and technology-agnostic.  The
base data model can be augmented to describe application- and technology-specific information.</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>Network Inventory is a collection of data for network devices and their components managed by a specific management system.
Per the definition of <xref target="RFC8969"/>, the network inventory model 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 Network Inventory covering both hardware and base software information.</t>
      <t><xref target="ni-augment"/> provides a set of considerations for future extensions of hardware, software, entitlement, and inventory topology mapping.</t>
      <t>The YANG data model defined in this document conforms to the Network Management Datastore Architecture <xref target="RFC8342"/>.</t>
      <t>The YANG data model defined in the document is intended to only report actual inventory data which includes both applied configuration data and state data of the network elements and components actually installed within the network.</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>container</t>
          </li>
          <li>
            <t>cpu</t>
          </li>
          <li>
            <t>chassis</t>
          </li>
          <li>
            <t>fan</t>
          </li>
          <li>
            <t>module</t>
          </li>
          <li>
            <t>port</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>
        <ul empty="true">
          <li>
            <t>Editors' Note: The port definition below needs to be moved to iana-hardware update</t>
          </li>
        </ul>
        <dl>
          <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 transceiver module is plugged in.</t>
          </dd>
        </dl>
        <ul empty="true">
          <li>
            <t>TBD: Recap the concept of chassis/slot/component/board/... in <xref target="TMF_SD2-20"/>.</t>
          </li>
        </ul>
        <t>Also, the document makes use of the following terms:</t>
        <dl>
          <dt>Physical interface:</dt>
          <dd>
            <t>An interface associated to a physical port. A physical interface is always in the lowest layer of the interface stack.</t>
          </dd>
          <dt>Logical interface:</dt>
          <dd>
            <t>An interface which is not associated to a physical port.</t>
          </dd>
        </dl>
        <ul empty="true">
          <li>
            <t>Editors' Note: check whether the definitions of physical and logical interfaces can be replaced by a normative reference to <xref target="RFC8343"/></t>
          </li>
        </ul>
        <ul empty="true">
          <li>
            <t>Editors' Note: Add recap for the concepts of chassis/slot/component/board/... in <xref target="TMF_SD2-20"/>.</t>
          </li>
        </ul>
        <dl>
          <dt>Network Inventory:</dt>
          <dd>
            <t>A collection of data for network elements and their components 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>Slot:</dt>
          <dd>
            <t>A holder of the board.</t>
          </dd>
          <dt>Board/Card:</dt>
          <dd>
            <t>A pluggable equipment can be inserted into one or several slots (or sub-slots) and can afford a specific transmission function independently.</t>
          </dd>
          <dt>Breakout Port:</dt>
          <dd>
            <t>A port is usually associated with a single physical interface. A breakout port is a port which is broken down and associated into multiple physical interfaces. Those physical interfaces can have the same or different speeds and the same or different number of breakout channels.</t>
          </dd>
          <dt>Trunk Port:</dt>
          <dd>
            <t>A trunk port is a port which is associated with one and only physical interface.</t>
          </dd>
          <dt>Port Breakout:</dt>
          <dd>
            <t>The configuration of a breakout port.</t>
          </dd>
        </dl>
        <ul empty="true">
          <li>
            <t>Note that interface channelization, when an interface (e.g., an Ethernet interface) is configured to support multiple logical sub-interfaces (e.g., VLAN interfaces), is different than port breakout and outside the scope of inventory models.</t>
          </li>
        </ul>
        <dl>
          <dt>Breakout channel:</dt>
          <dd>
            <t>An abstraction of the atomic resource elements into which a breakout port can be broken down: a physical interface can be associated with one or more breakout channels but no more than one physical interface can be associated with one breakout channel.</t>
          </dd>
          <dt/>
          <dd>
            <t>The physical elements abstracted as breakout channels are implementation specific.
<xref target="port-examples"/> provides some examples of breakout ports configurations and implementations.</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>
          <dt>Transceiver:</dt>
          <dd>
            <t>A transceiver represents a transmitter/receiver (Tx/Rx) pair which is transmitting and receiving a signal from the media.</t>
          </dd>
          <dt/>
          <dd>
            <t>This definition generalizes the transceiver definition in <xref target="I-D.ietf-ccamp-optical-impairment-topology-yang"/> to model also non optical transceivers (e.g., electrical transceivers).</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="yang-data-model-for-network-inventory-overview">
      <name>YANG Data Model for Network Inventory Overview</name>
      <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 ({?RFC1157}).</t>
      <t>The data model for network elements defined in this document uses a flat list of network elements.</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>Attributes related to specific class of component can be found in the component-specific-info structure.</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 network inventory information that a controller discovers from all the network elements 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 network 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>
      <figure anchor="fig-overall">
        <name>Overall Tree Structure</name>
        <artwork type="ascii-art"><![CDATA[
  +--rw network-elements
     +--rw network-element* [ne-id]
        +--rw ne-id            string
        ...
        +--rw components
           +--rw component* [component-id]
              +--rw component-id            string
              ...
]]></artwork>
      </figure>
      <section anchor="common-attributes">
        <name>Common Design for All Inventory Objects</name>
        <t>For all the inventory objects, there are some common attributes <xref target="fig-nec-tree"/>. Such as:</t>
        <dl>
          <dt>Identifier:</dt>
          <dd>
            <t>The UUID format is used. Such identifiers are widely implemented with systems. It is guaranteed to be globally unique.</t>
          </dd>
          <dt>Name:</dt>
          <dd>
            <t>A human-readable label information which could be used to present on a GUI. This name is suggested to be provided by a server.</t>
          </dd>
          <dt>Alias:</dt>
          <dd>
            <t>A human-readable label information which could be modified by user. It could also be present on a GUI instead of name.</t>
          </dd>
          <dt>Description:</dt>
          <dd>
            <t>A human-readable information which could be also input by a user. The description provides more detailed information to prompt users when performing maintenance operations.</t>
          </dd>
        </dl>
        <figure anchor="fig-nec-tree">
          <name>Common Attributes Between Network Elements and Components Subtree</name>
          <artwork type="ascii-art"><![CDATA[
  +--rw network-elements
     +--rw network-element* [ne-id]
        +--rw ne-id            string
        +--rw ne-type?         identityref
        +--rw uuid?            yang:uuid
        +--rw name?            string
        +--rw description?     string
        +--rw alias?           string
        ...
        +--rw components
           +--rw component* [component-id]
              +--rw component-id            string
              +--rw uuid?                   yang:uuid
              +--rw name?                   string
              +--rw description?            string
              +--rw alias?                  string
              +--rw class                   union
              ...
]]></artwork>
        </figure>
      </section>
      <section anchor="network-element">
        <name>Network Element</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 as shown in <xref target="fig-ne-tree"/>.</t>
        <figure anchor="fig-ne-tree">
          <name>Network Elements Subtree</name>
          <artwork type="ascii-art"><![CDATA[
  +--rw network-elements
     +--rw network-element* [ne-id]
        ...
        +--rw hardware-rev?    string
        +--rw software-rev?    string
        +--rw mfg-name?        string
        +--rw mfg-date?        yang:date-and-time
        +--rw part-number?     string
        +--rw serial-number?   string
        +--rw product-name?    string
        ...
]]></artwork>
        </figure>
        <ul empty="true">
          <li>
            <t>Not all the attributes defined in <xref target="RFC8348"/> are applicable for network element. And there could also be some missing attributes which are not recognized by <xref target="RFC8348"/>. More extensions could be introduced in later revisions after the missing attributes are fully discussed.</t>
          </li>
        </ul>
      </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>The component definition (<xref target="fig-comp-tree"/>) is generalized to both hardware components
and non-hardware components (e.g., software components).</t>
        <figure anchor="fig-comp-tree">
          <name>Components Subtree</name>
          <artwork type="ascii-art"><![CDATA[
  +--rw components
      +--rw component* [component-id]
        +--rw component-id            string
        +--rw uuid?                   yang:uuid
        +--rw name?                   string
        +--rw description?            string
        +--rw alias?                  string
        +--rw class                   union
        +--rw child-component-ref
        +--rw parent-rel-pos?         int32
        +--rw parent-component-ref
        +--rw hardware-rev?           string
        +--rw firmware-rev?           string
        +--rw software-rev?           string
        +--rw serial-num?             string
        +--rw mfg-name?               string
        +--rw part-number?            string
        +--rw asset-id?               string
        +--rw is-fru?                 boolean
        +--rw mfg-date?               yang:date-and-time
        +--rw uri*                    inet:uri
]]></artwork>
        </figure>
        <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="software-components">
          <name>Software Components</name>
          <t>This document defines "software-rev" of NEs and components, which are
basic software attributes of a Network Element.</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 anchor="ports">
          <name>Breakout ports</name>
          <t>The model defines the 'breakout-channels' presence container to indicate whether the port, which contains the transceiver module, can be configured as a breakout port or not.</t>
          <t>It is assumed that a port which supports port breakout can be configured either as a trunk port or as a breakout port.</t>
          <t>Reporting whether a port, which supports port breakout, is configured as a trunk or as a breakout port, is outside the scope of the base network inventory model. The model providing the mapping between the topology and the inventory models should provide sufficient information to identify how the port is configured and, in case of breakout configuration, which breakout channel is associated with which Link Termination Point (LTP), abstracting a device physical interface within the topology model.</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 wide inventory data.</t>
        <section anchor="component-specific-info-design">
          <name>Component-Specific Info Design</name>
          <t>According to the management requirements from operators, some important attributes are not defined in <xref target="RFC8348"/>. These attributes could be component-specific and are not suitable to be defined under the component list node. Instead, they can be defined by augmenting the component-specific info container for the attributes applicable to HW e.g. boards/slot components only. Other component-specific attributes, such as SW-specific-info, may be defined in companion augmentation data models, such as
<xref target="I-D.ietf-ivy-network-inventory-software"/> and are out of the scope of this model.</t>
          <artwork type="ascii-art"><![CDATA[
+--rw components
   +--rw component* [component-id]
      +--rw component-id            string
      ...
      +--ro chassis-specific-info
      +--ro slot-specific-info
      +--ro board-specific-info
      +--ro port-specific-info
      ...
]]></artwork>
        </section>
        <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>
          <artwork type="ascii-art"><![CDATA[
  +--ro components
     +--ro component* [component-id]
        ...
        +--ro part-number?           string
        ...
]]></artwork>
        </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-augment">
      <name>Extending Network Inventory</name>
      <t>This document defines the basic network inventory attributes
applicable to typical network scenarios.  For finer-grained and
specific management scenarios, the relationship between this model
and other models is illustrated in Figure 4.</t>
      <artset>
        <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="272" width="584" viewBox="0 0 584 272" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
            <path d="M 8,160 L 8,256" fill="none" stroke="black"/>
            <path d="M 64,128 L 64,160" fill="none" stroke="black"/>
            <path d="M 112,32 L 112,96" fill="none" stroke="black"/>
            <path d="M 120,160 L 120,256" fill="none" stroke="black"/>
            <path d="M 160,160 L 160,256" fill="none" stroke="black"/>
            <path d="M 216,96 L 216,160" fill="none" stroke="black"/>
            <path d="M 272,160 L 272,256" fill="none" stroke="black"/>
            <path d="M 320,32 L 320,96" fill="none" stroke="black"/>
            <path d="M 320,160 L 320,256" fill="none" stroke="black"/>
            <path d="M 376,128 L 376,160" fill="none" stroke="black"/>
            <path d="M 432,160 L 432,256" fill="none" stroke="black"/>
            <path d="M 464,160 L 464,256" fill="none" stroke="black"/>
            <path d="M 576,160 L 576,256" fill="none" stroke="black"/>
            <path d="M 112,32 L 320,32" fill="none" stroke="black"/>
            <path d="M 112,96 L 320,96" fill="none" stroke="black"/>
            <path d="M 64,128 L 376,128" fill="none" stroke="black"/>
            <path d="M 8,160 L 56,160" fill="none" stroke="black"/>
            <path d="M 72,160 L 120,160" fill="none" stroke="black"/>
            <path d="M 160,160 L 208,160" fill="none" stroke="black"/>
            <path d="M 224,160 L 272,160" fill="none" stroke="black"/>
            <path d="M 320,160 L 368,160" fill="none" stroke="black"/>
            <path d="M 384,160 L 432,160" fill="none" stroke="black"/>
            <path d="M 464,160 L 576,160" fill="none" stroke="black"/>
            <path d="M 8,256 L 120,256" fill="none" stroke="black"/>
            <path d="M 160,256 L 272,256" fill="none" stroke="black"/>
            <path d="M 320,256 L 432,256" fill="none" stroke="black"/>
            <path d="M 464,256 L 576,256" fill="none" stroke="black"/>
            <polygon class="arrowhead" points="384,160 372,154.4 372,165.6" fill="black" transform="rotate(90,376,160)"/>
            <polygon class="arrowhead" points="224,160 212,154.4 212,165.6" fill="black" transform="rotate(90,216,160)"/>
            <polygon class="arrowhead" points="72,160 60,154.4 60,165.6" fill="black" transform="rotate(90,64,160)"/>
            <g class="text">
              <text x="140" y="68">Base</text>
              <text x="192" y="68">Network</text>
              <text x="264" y="68">Inventory</text>
              <text x="52" y="196">Hardware</text>
              <text x="212" y="196">Software</text>
              <text x="520" y="196">Inventory</text>
              <text x="60" y="212">Extensions</text>
              <text x="220" y="212">Extensions</text>
              <text x="376" y="212">Entitlement</text>
              <text x="516" y="212">Topology</text>
              <text x="36" y="228">e.g.</text>
              <text x="80" y="228">Power</text>
              <text x="196" y="228">e.g.</text>
              <text x="512" y="228">Mapping</text>
              <text x="44" y="244">supply</text>
              <text x="92" y="244">unit</text>
              <text x="188" y="244">SW</text>
              <text x="224" y="244">patch</text>
            </g>
          </svg>
        </artwork>
        <artwork type="ascii-art"><![CDATA[
             +-------------------------+
             |                         |
             | Base Network Inventory  |
             |                         |
             +------------+------------+
                          |
       +------------------+-------------------+
       |                  |                   |
+------V------+    +------V------+     +------V------+   +-------------+
|             |    |             |     |             |   |             |
| Hardware    |    |  Software   |     |             |   |  Inventory  |
| Extensions  |    |  Extensions |     | Entitlement |   |  Topology   |
| e.g. Power  |    |  e.g.       |     |             |   |  Mapping    |
| supply unit |    |  SW patch   |     |             |   |             |
+-------------+    +-------------+     +-------------+   +-------------+
]]></artwork>
      </artset>
    </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
  +--rw network-inventory
     +--rw network-elements
        +--rw network-element* [ne-id]
           +--rw ne-id                 string
           +--ro ne-type?              identityref
           +--ro uuid?                 yang:uuid
           +--rw name?                 string
           +--rw description?          string
           +--rw alias?                string
           +--ro hardware-rev?         string
           +--ro software-rev?         string
           +--ro software-patch-rev*   string
           +--ro mfg-name?             string
           +--ro mfg-date?             yang:date-and-time
           +--ro serial-number?        string
           +--ro product-name?         string
           +--rw components
              +--rw component* [component-id]
                 +--rw component-id                        string
                 +--ro class                               union
                 +--ro uuid?                               yang:uuid
                 +--rw name?                               string
                 +--rw description?                        string
                 +--rw alias?                              string
                 +--ro hardware-rev?                       string
                 +--ro software-rev?                       string
                 +--ro software-patch-rev*                 string
                 +--ro mfg-name?                           string
                 +--ro mfg-date?
                 |       yang:date-and-time
                 +--ro serial-number?                      string
                 +--ro product-name?                       string
                 +--ro firmware-rev?                       string
                 +--ro part-number?                        string
                 +--ro asset-id?                           string
                 +--ro child-component-ref
                 +--ro parent-rel-pos?                     int32
                 +--ro parent?
                 |       -> ../../component/component-id
                 +--ro is-fru?                             boolean
                 +--ro uri*                                inet:uri
                 +--ro chassis-specific-info
                 +--ro slot-specific-info
                 +--ro board-specific-info
                 +--ro port-specific-info
                 +--ro transceiver-module-specific-info
                    +--ro breakout-channels!
                       +--ro breakout-channel* [channel-id]
                          +--ro channel-id    uint8
]]></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-02-03.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-02-03 {
    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). ";
  }

  /*
   * Editors' Note: This identity may need to be moved to
   *                iana-hardware update
   */

  identity transceiver-module {
    base ianahw:hardware-class;
    description
      "This identity is applicable if the hardware class is some sort
       of self-contained sub-system which contains one or more
       transceivers (e.g., optical or electrical transceivers).

       A transceiver-module component can only be contained by a
       port component.";
  }

  /*
   * 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()/../nwi: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 channel-ref {
    description
      "This grouping is intended to be used by data models that need
       to reference one or more breakout channels within a
       transceivers module component.";
    leaf ne-ref {
      type nwi:ne-ref;
      description
        "The reference to the Network Element which contains the
         transceiver module to be referenced.";
    }
    leaf transceiver-module-ref {
      type leafref {
        path
          "/nwi:network-inventory/nwi:network-elements/"
        + "nwi:network-element[nwi:ne-id=current()/../nwi: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,
            'nwi:transceiver-module')";
      description
        "The reference to the transceivers module component.";
    }
    leaf-list channel-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="
            + "current()/../transceiver-module-ref]/"
            + "nwi:transceiver-module-specific-info/"
            + "nwi:breakout-channels/nwi:breakout-channel/"
            + "nwi:channel-id";
      }
      description
        "The references to the breakout channels.";
    }
  }

  grouping common-entity-attributes {
    description
      "The set of attributes which are common to all the entities
       (e.g., component, network elements) defined in this module.";
    leaf uuid {
      type yang:uuid;
      config false;
      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 manager, 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 description {
      type string;
      description
        "The textual description of the entity (e.g., component).";
    }
    leaf alias {
      type string;
      description
        "The alias name of the entity (e.g., component). This alias
         name can be specified by network manager.";
    }
    leaf hardware-rev {
      type string;
      config false;
      description
        "The vendor-specific hardware revision string for the entity
         (e.g., component).";
    }
    leaf software-rev {
      type string;
      config false;
      description
        "The vendor-specific software revision string for the entity
         (e.g., component).";
    }
    leaf-list software-patch-rev {
      type string;
      config false;
      description
        "The vendor-specific patch software revision string for the
         entity (e.g., component).";
    }
    leaf mfg-name {
      type string;
      config false;
      description
        "The name of the manufacturer of this entity
         (e.g., component).";
    }
    leaf mfg-date {
      type yang:date-and-time;
      config false;
      description
        "The date of manufacturing of the entity (e.g., component).";
    }
    leaf serial-number {
      type string;
      config false;
      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 product-name {
      type string;
      config false;
      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.";
    }
  }

  /* 
   * Data Nodes
   */

  container network-inventory {
    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";
          config false;
          description
            "The NE type.";
        }
        uses common-entity-attributes;
        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.";
            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;
                }
              }
              config false;
              mandatory true;
              description
                "The type of the component.";
            }
            uses common-entity-attributes {
              refine "hardware-rev" {
                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";
              }
              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', 'firmware-rev', '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";
              }
              refine "mfg-date" {
                description
                  "The date of manufacturing of the managed
                   component.";
                reference
                  "RFC 6933: Entity MIB (Version 4) -
                             entPhysicalMfgDate";
              }
            }
            leaf firmware-rev {
              type string;
              config false;
              description
                "The vendor-specific firmware revision string for the
                 component.";
              reference
                "RFC 6933: Entity MIB (Version 4) -
                           entPhysicalFirmwareRev";
            }
            leaf part-number {
              type string;
              config false;
              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 asset-id {
              type string;
              config false;
              description
                "This node is a user-assigned asset tracking
                 identifier for the component.

                 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";
            }
            container child-component-ref {
              config false;
              description
                "A placeholder for adding the reference to child
                 component(s): to further discuss whether to define
                 a child leaf-list as RFC 8348 or a list of
                 sub-components as openconfig-platform.";
            }
            leaf parent-rel-pos {
              type int32 {
                range "0 .. 2147483647";
              }
              config false;
              description
                "The relative position with respect to the parent
                 component among all the sibling components.";
              reference
                "RFC 6933: Entity MIB (Version 4) -
                           entPhysicalParentRelPos";
            }
            leaf parent {
              type leafref {
                path "../../component/component-id";
                require-instance false;
              }
              config false;
              description
                "The identifier of the component that physically
                contains this component.

                If this leaf is not instantiated, it indicates that 
                this component is not contained in any other 
                component.

                In the event that a physical component is contained
                by more than one physical component
                (e.g., double-wide modules), this node contains the
                identifier of one of these components.
                An implementation MUST use the same name every time
                this node is instantiated.";
              reference
                "RFC 6933: Entity MIB (Version 4) - 
                           entPhysicalContainedIn";
              
            }
            leaf is-fru {
              type boolean;
              config false;
              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;
              config false;
              description
                "This node contains identification information about
                 the component.";
              reference
                "RFC 6933: Entity MIB (Version 4) - entPhysicalUris";
            }
            container chassis-specific-info {
              when
                "derived-from-or-self(../nwi:class,
                'ianahw:chassis')";
              config false;
              description
                "This container contains some attributes belong to
                 chassis only.";
            }
            container slot-specific-info {
              when
                "derived-from-or-self(../nwi:class,
                'ianahw:container')";
              config false;
              description
                "This container contains some attributes belong to
                 slot only.";
            }
            container board-specific-info {
              when
                "derived-from-or-self(../nwi:class,
                'ianahw:module')";
              config false;
              description
                "This container contains some attributes belong to
                 board only.";
            }
            container port-specific-info {
              when
                "derived-from-or-self(../nwi:class, 'ianahw:port')";
              config false;
              description
                "This container contains some attributes belong to
                 port only.";
            }
            container transceiver-module-specific-info {
              when
                "derived-from-or-self(../nwi:class,
                'nwi:transceiver-module')";
              config false;
              description
                "This container contains some attributes belong to
                 transceivers modules only.";
              container breakout-channels {
                presence
                  "When present, it indicates that port breakout is
                   supported.";
                description
                  "Top level container for the list of breakout
                   channels supported by the transceivers module.";
                list breakout-channel {
                  key "channel-id";
                  leaf channel-id {
                    type uint8;
                    description
                      "An identifier that uniquely identifies the
                       breakout channel within the transceiver
                       module.";
                  }
                  description
                    "The list of breakout channels supported by the
                     transceivers module.";
                }
              }
            }
          }
        }
      }
    }
  }
}
]]></sourcecode>
      </figure>
    </section>
    <section anchor="manageability-considerations">
      <name>Manageability Considerations</name>
      <t>&lt;Add any manageability considerations&gt;</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>&lt;Add any security considerations&gt;</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>&lt;Add any IANA considerations&gt;</t>
    </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="RFC8343">
          <front>
            <title>A YANG Data Model for Interface Management</title>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
            <date month="March" year="2018"/>
            <abstract>
              <t>This document defines a YANG data model for the management of network interfaces. It is expected that interface-type-specific data models augment the generic interfaces data model defined in this document. The data model includes definitions for configuration and system state (status information and counters for the collection of statistics).</t>
              <t>The YANG data model in this document conforms to the Network Management Datastore Architecture (NMDA) defined in RFC 8342.</t>
              <t>This document obsoletes RFC 7223.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8343"/>
          <seriesInfo name="DOI" value="10.17487/RFC8343"/>
        </reference>
        <reference anchor="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>
      </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>TIM</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="25" month="February" 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-14"/>
        </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="I-D.ietf-ccamp-optical-impairment-topology-yang">
          <front>
            <title>A YANG Data Model for Optical Impairment-aware Topology</title>
            <author fullname="Dieter Beller" initials="D." surname="Beller">
              <organization>Nokia</organization>
            </author>
            <author fullname="Esther Le Rouzic" initials="E." surname="Le Rouzic">
              <organization>Orange</organization>
            </author>
            <author fullname="Sergio Belotti" initials="S." surname="Belotti">
              <organization>Nokia</organization>
            </author>
            <author fullname="Gabriele Galimberti" initials="G." surname="Galimberti">
              <organization>Individual</organization>
            </author>
            <author fullname="Italo Busi" initials="I." surname="Busi">
              <organization>Huawei Technologies</organization>
            </author>
            <date day="21" month="October" year="2024"/>
            <abstract>
              <t>   In order to provision an optical connection through optical networks,
   a combination of path continuity, resource availability, and
   impairment constraints must be met to determine viable and optimal
   paths through the network.  The determination of appropriate paths is
   known as Impairment-Aware Routing and Wavelength Assignment (IA-RWA)
   for WSON, while it is known as Impairment-Aware Routing and Spectrum
   Assignment (IA-RSA) for SSON.

   This document provides a YANG data model for the impairment-aware TE
   topology in optical networks.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-ccamp-optical-impairment-topology-yang-17"/>
        </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-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="9" month="December" year="2024"/>
            <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-00"/>
        </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>
      </references>
    </references>
    <?line 1222?>

<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">contained-child</td>
            <td align="left"> </td>
          </tr>
          <tr>
            <td align="left">chassis</td>
            <td align="left">chassis-specific-info</td>
            <td align="left"> </td>
          </tr>
          <tr>
            <td align="left">port</td>
            <td align="left">port-specific-info</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">board-specific-info</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, transceivers and port breakouts</name>
      <ul empty="true">
        <li>
          <t>Editors' Note: Need to provide some examples based on <eref target="https://datatracker.ietf.org/doc/slides-120-ivy-2-a-yang-data-model-for-network-inventory/">IETF 121 Slides</eref>, and in particular:
- slide 8 (100G-LR single-channel port)
- slide 9 (400G-LR4 multi-channel WDM port)
- slide 10 (400G-DR4 MPO port)
Describe the concept of host and line channels and the mapping to breakout channels</t>
        </li>
      </ul>
    </section>
    <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"/>.</t>
      <t>The example instantiates the "ietf-network-inventory" model to describe a single board with seven different types of ports, transceivers and breakouts configurations:</t>
      <ol spacing="normal" type="1"><li>
          <t>An integrated port (non pluggable). This port can be of any type (e.g., optical or electrical), single-channel or multi-channel but not supporting breakouts;</t>
        </li>
        <li>
          <t>An empty port;</t>
        </li>
        <li>
          <t>A single channel optical pluggable port (e.g., a 100G-LR port configured as a single 100GE interface);</t>
        </li>
        <li>
          <t>A Wavelength-Division Multiplexing (WDM) based multi-channel optical port (e.g., a 400G-LR4 port configured as a single 400GE interface) which does not support breakouts: the four WDM channels are not reported since not relevant from inventory management perspective;</t>
        </li>
        <li>
          <t>A Multi-Fiber Push-on (MPO) trunk-only port (e.g., 400G-DR4 port configured as a single 400GE interface). This type of MPO port does not support breakouts: the four channels are not reported since not relevant from inventory management perspective;</t>
        </li>
        <li>
          <t>An MPO trunk port (e.g., 400G-DR4 port configured as a single 400GE interface). This type of MPO port can support either the trunk or the breakout configuration but in this example, it is configured to support the trunk configuration: the four channels are reported to support breakouts configuration, when needed.</t>
        </li>
        <li>
          <t>An MPO breakout port (e.g., 400G-DR4 port configured as 4x100GE interfaces): the four channels are reported to support breakouts configuration.</t>
        </li>
      </ol>
      <t>From a network inventory perspective, there is no need to distinguish between single-channel and MPO trunk-only ports.</t>
      <t>Note: as described in <xref target="ports"/>, reporting whether an MPO port is configured as a trunk or as a breakout port, is outside the scope of the base network inventory model.</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": "transceiver-module-1",
                "class": "ietf-network-inventory:transceiver-module",
                "description": "Example of an integrated (non-\
                                                   pluggable) port.",
                "parent": "port-1",
                "is-fru": false
              },
              {
                "component-id": "port-2",
                "class": "iana-hardware:port",
                "description": "Example of an empty port.",
                "parent": "board-1",
                "parent-rel-pos": 2
              },
              {
                "component-id": "port-3",
                "class": "iana-hardware:port",
                "description": "Example of a single channel optical \
                                                    pluggable port.",
                "parent": "board-1",
                "parent-rel-pos": 3
              },
              {
                "component-id": "transceiver-module-3",
                "class": "ietf-network-inventory:transceiver-module",
                "description": "Example of a single channel optical \
                                                    pluggable port.",
                "parent": "port-3",
                "is-fru": true
              },
              {
                "component-id": "port-4",
                "class": "iana-hardware:port",
                "description": "Example of a WDM multi-channel \
                                                    pluggable port.",
                "parent": "board-1",
                "parent-rel-pos": 4
              },
              {
                "component-id": "transceiver-module-4",
                "class": "ietf-network-inventory:transceiver-module",
                "description": "Example of a WDM multi-channel \
                                                    pluggable port.",
                "parent": "port-4",
                "is-fru": true
              },
              {
                "component-id": "port-5",
                "class": "iana-hardware:port",
                "description": "Example of an optical MPO pluggable \
                             trunk port (not supporting breakouts).",
                "parent": "board-1",
                "parent-rel-pos": 5
              },
              {
                "component-id": "transceiver-module-5",
                "class": "ietf-network-inventory:transceiver-module",
                "description": "Example of an optical MPO pluggable \
                             trunk port (not supporting breakouts).",
                "parent": "port-5",
                "is-fru": true
              },
              {
                "component-id": "port-6",
                "class": "iana-hardware:port",
                "description": "Example of an optical MPO pluggable \
                                 trunk port (supporting breakouts).",
                "parent": "board-1",
                "parent-rel-pos": 6
              },
              {
                "component-id": "transceiver-module-6",
                "class": "ietf-network-inventory:transceiver-module",
                "description": "Example of an optical MPO pluggable \
                                 trunk port (supporting breakouts).",
                "parent": "port-6",
                "is-fru": true,
                "transceiver-module-specific-info": {
                  "breakout-channels": {
                    "breakout-channel": [
                      {
                        "channel-id": 1
                      },
                      {
                        "channel-id": 2
                      },
                      {
                        "channel-id": 3
                      },
                      {
                        "channel-id": 4
                      }
                    ]
                  }
                }
              },
              {
                "component-id": "port-7",
                "class": "iana-hardware:port",
                "description": "Example of an optical MPO pluggable \
                                                     breakout port.",
                "parent": "board-1",
                "parent-rel-pos": 7
              },
              {
                "component-id": "transceiver-module-7",
                "class": "ietf-network-inventory:transceiver-module",
                "description": "Example of an optical MPO pluggable \
                                                     breakout port.",
                "parent": "port-7",
                "is-fru": true,
                "transceiver-module-specific-info": {
                  "breakout-channels": {
                    "breakout-channel": [
                      {
                        "channel-id": 1
                      },
                      {
                        "channel-id": 2
                      },
                      {
                        "channel-id": 3
                      },
                      {
                        "channel-id": 4
                      }
                    ]
                  }
                }
              }
            ]
          }
        }
      ]
    }
  }
}
]]></artwork>
    </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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
h/Nxdo3bWP8XGijk7L0FAQA=

-->

</rfc>
