<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.29 (Ruby 3.2.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-ivy-network-inventory-yang-06" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.28.1 -->
  <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-06"/>
    <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="May" day="21"/>
    <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. The base data model can be augmented with application- and technology-specific details.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://ietf-ivy-wg.github.io/network-inventory-yang/draft-ietf-ivy-network-inventory-yang.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-ivy-network-inventory-yang/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/ietf-ivy-wg/network-inventory-yang"/>.</t>
    </note>
  </front>
  <middle>
    <?line 108?>

<section anchor="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>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 base network inventory model, defined in this document, provides a list of network elements and of network element components:</t>
      <figure anchor="fig-overall">
        <name>Overall Tree Structure</name>
        <artwork type="ascii-art"><![CDATA[
  +--rw network-inventory
     +--rw network-elements
        +--rw network-element* [ne-id]
           +--rw ne-id                 string
           ...
           +--rw components
              +--rw component* [component-id]
                 +--rw component-id                        string
                 ...
]]></artwork>
      </figure>
      <t>The network-inventory top level container has been defined to support reporting other types of network inventory objects, besides the network elements and network element components.</t>
      <t>These additional types of network inventory objects can be defined, together with the associated YANG data model and the rationale for managing them as part of the network inventory, in other documents providing application- and technology-specific companion augmentation data models, such as
<xref target="I-D.ietf-ivy-network-inventory-location"/></t>
      <t>The network element definition is generalized to support physical
network elements and other types of components' groups that can be managed as physical network elements from an
inventory perspective.</t>
      <t>Physical network elements are usually devices such as hosts, gateways, terminal servers, and the like, which have management agents responsible for performing the network management functions requested by the network management stations (<xref target="RFC1157"/>).</t>
      <t>The "ne-type" is defined as a YANG identity to describe the type of the network element. This document defines only the "physical-network-element" identity.</t>
      <t>Other types of network elements can be defined in other documents, together with the associated YANG identity and the rationale for managing them as network elements from an inventory perspective.</t>
      <t>The component definition is also generalized to support any types of
component inventory objects that can be managed as hardware components from an inventory perspective.</t>
      <t>The data model for components defined in this document uses a list of components within each network element.</t>
      <t>Different types of components can be distinguished by the class of component. The component "class" is defined as a union between the hardware class identity, defined in "iana-hardware", and the "non-hardware" identity, defined in this document.</t>
      <t>Other types of components can be defined in other documents, together with the associated YANG identity and the rationale for managing them as components from an inventory perspective.</t>
      <t>The identity definition of additional types of "ne-type" and "non-
hardware" identity of component are outside the scope of this
document and could be defined in application- and technology-specific companion augmentation data models, such as
<xref target="I-D.ietf-ivy-network-inventory-software"/>.</t>
      <t>In <xref target="RFC8348"/>, rack, chassis, slot, sub-slot, board and port are defined as components of network elements with generic attributes.</t>
      <t>While <xref target="RFC8348"/> is used to manage the hardware of a single server (e.g., a network element), the Network Inventory YANG data model is used to retrieve the base 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>
      <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-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()/../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()/../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="11" month="April" year="2025"/>
            <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-18"/>
        </reference>
        <reference anchor="RFC8340">
          <front>
            <title>YANG Tree Diagrams</title>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
            <author fullname="L. Berger" initials="L." role="editor" surname="Berger"/>
            <date month="March" year="2018"/>
            <abstract>
              <t>This document captures the current syntax used in YANG module tree diagrams. The purpose of this document is to provide a single location for this definition. This syntax may be updated from time to time based on the evolution of the YANG language.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="215"/>
          <seriesInfo name="RFC" value="8340"/>
          <seriesInfo name="DOI" value="10.17487/RFC8340"/>
        </reference>
        <reference anchor="I-D.ietf-ivy-network-inventory-location">
          <front>
            <title>A YANG Data Model for Network Inventory Location</title>
            <author fullname="Bo Wu" initials="B." surname="Wu">
              <organization>Huawei</organization>
            </author>
            <author fullname="Sergio Belotti" initials="S." surname="Belotti">
              <organization>Nokia</organization>
            </author>
            <author fullname="Jean-Francois Bouquier" initials="J." surname="Bouquier">
              <organization>Vodafone</organization>
            </author>
            <author fullname="Fabio Peruzzini" initials="F." surname="Peruzzini">
              <organization>TIM</organization>
            </author>
            <author fullname="Phil Bedard" initials="P." surname="Bedard">
              <organization>Cisco</organization>
            </author>
            <date day="17" month="April" year="2025"/>
            <abstract>
              <t>   This document defines a YANG data model for Network Inventory
   location (e.g., site, room, rack, geo-location data), which provides
   location information with different granularity levels for
   inventoried network elements.

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

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-ivy-network-inventory-location-01"/>
        </reference>
        <reference anchor="RFC1157">
          <front>
            <title>Simple Network Management Protocol (SNMP)</title>
            <author fullname="J.D. Case" initials="J.D." surname="Case"/>
            <author fullname="M. Fedor" initials="M." surname="Fedor"/>
            <author fullname="M.L. Schoffstall" initials="M.L." surname="Schoffstall"/>
            <author fullname="J. Davin" initials="J." surname="Davin"/>
            <date month="May" year="1990"/>
            <abstract>
              <t>This RFC is a re-release of RFC 1098, with a changed "Status of this Memo" section plus a few minor typographical corrections. This memo defines a simple protocol by which management information for a network element may be inspected or altered by logically remote users. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="1157"/>
          <seriesInfo name="DOI" value="10.17487/RFC1157"/>
        </reference>
        <reference anchor="I-D.ietf-ivy-network-inventory-software">
          <front>
            <title>A YANG Network Data Model of Network Inventory Software Extensions</title>
            <author fullname="Bo Wu" initials="B." surname="Wu">
              <organization>Huawei</organization>
            </author>
            <author fullname="Cheng Zhou" initials="C." surname="Zhou">
              <organization>China Mobile</organization>
            </author>
            <author fullname="Qin Wu" initials="Q." surname="Wu">
              <organization>Huawei</organization>
            </author>
            <author fullname="Mohamed Boucadair" initials="M." surname="Boucadair">
              <organization>Orange</organization>
            </author>
            <date day="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 1193?>

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

-->

</rfc>
