<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.1 (Ruby 3.2.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-y3bp-ivy-network-inventory-yang-00" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.18.2 -->
  <front>
    <title abbrev="Network Inventory YANG">A YANG Data Model for Network Inventory</title>
    <seriesInfo name="Internet-Draft" value="draft-y3bp-ivy-network-inventory-yang-00"/>
    <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="2023" month="October" day="23"/>
    <workgroup>IVY Working Group</workgroup>
    <keyword>next generation</keyword>
    <keyword>unicorn</keyword>
    <keyword>sparkling distributed ledger</keyword>
    <abstract>
      <?line 98?>

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

<section anchor="introduction">
      <name>Introduction</name>
      <t>The purpose of this document is to define a base network inventory
YANG data model that is application- and technology-agnostic.  The
base data model can be augmented to describe application-specific or
technology-specific information.</t>
      <t>Network Inventory management is a key component in
operators' OSS architectures.</t>
      <t>Network Inventory is a fundamental functionality in network
management and was specified many years ago.  Given the emergence of
data models and their deployment in operator's management and control
systems, the traditional function of inventory management is also
requested to be defined as a data model.</t>
      <t>Network Inventory management and monitoring is a critical
part for ensuring the network stays healthy, well-planned, and
functioning in the operator's network.  Network Inventory
management allows the operator to keep track of which physical
devices are deployed in the network including relevant software and
hardware versions.</t>
      <t>The Network Inventory management also helps the operator to
know when to acquire new assets and what is needed, or to
decommission old or faulty ones, which can help to improve network
performance and capacity planning.</t>
      <t>In <xref target="I-D.ietf-teas-actn-poi-applicability"/> a gap was identified
regarding the lack of a YANG data model that could be used at ACTN
MPI interface level to report whole/partial network hardware
inventory information available at domain controller level towards
north-bound systems (e.g., MDSC or OSS layer).</t>
      <t><xref target="RFC8345"/> initial goal was to make possible the augmentation of the
YANG data model with Network Inventory data model but this
was never developed and the scope was kept limited to network
topology data only.</t>
      <t>It is key for operators to drive the industry towards the use of a
standard YANG data model for Network Inventory data instead
of using vendors proprietary APIs (e.g., REST API).</t>
      <t>In the ACTN architecture, this would bring also clear benefits at
MDSC level for packet over optical integration scenarios since this
would enable the correlation of the HW network inventory information with the
links information reported in the network topology model. This represent a priority for operators to implement this with a standard YANG data model that could be used as soon as possible in multi-vendor integrations of PNCs with MDSCs.</t>
      <t>The intention is to define a generic YANG base data model that would be as
much as possible technology agnostic (valid for IP, optical and
microwave networks) and that could be augmented, when required, to
include some technology-specific inventory details together with specific HW or SW component’s attributes.</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 South Bound Interface (SBI) towards the network elements rather than at the domain controller's northbound. 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 draft.</t>
      <t>The proposed YANG data model has been analyzed at the present stage to cover the common requirements for both HW and SW use cases for Network Inventory.</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><xref target="ni-augment"/> provides a set of augmentation considerations for extensions
of hardware, software, entitlement, and inventory topology mapping.</t>
      <t>The YANG data model defined in this document conforms to the Network Management Datastore Architecture <xref target="RFC8342"/>.</t>
      <section anchor="terminology-and-notations">
        <name>Terminology and Notations</name>
        <t>The following terms are defined in <xref target="RFC7950"/> and are not
  redefined here:</t>
        <ul spacing="normal">
          <li>
            <t>client</t>
          </li>
          <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 terminology for describing YANG data models is found in
  <xref target="RFC7950"/>.</t>
        <t>TBD: Recap the concept of chassis/slot/component/board/... in <xref target="TMF_SD2-20"/>.</t>
        <t>Following terms are used for the representation of the hierarchies in the network inventory.</t>
        <t>Network Inventory:</t>
        <ul empty="true">
          <li>
            <t>a collection of data for network devices and their components managed by a specific management system.</t>
          </li>
        </ul>
        <t>Network Element:</t>
        <ul empty="true">
          <li>
            <t>a manageable network entity that contains hardware and software units, e.g. a network device installed on one or several chassis</t>
          </li>
        </ul>
        <t>Chassis:</t>
        <ul empty="true">
          <li>
            <t>a holder of the device installation.</t>
          </li>
        </ul>
        <t>Slot:</t>
        <ul empty="true">
          <li>
            <t>a holder of the board.</t>
          </li>
        </ul>
        <t>Component:</t>
        <ul empty="true">
          <li>
            <t>a unit of the network element, e.g.  hardware components like chassis, card, port, software components like software-patch, bios, and boot-loader</t>
          </li>
        </ul>
        <t>Board/Card:</t>
        <ul empty="true">
          <li>
            <t>a pluggable equipment can be inserted into one or several slots/sub-slots and can afford a specific transmission function independently.</t>
          </li>
        </ul>
        <t>Port:</t>
        <ul empty="true">
          <li>
            <t>an interface on board</t>
          </li>
        </ul>
      </section>
      <section anchor="requirements-notation">
        <name>Requirements Notation</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="tree-diagram">
        <name>Tree Diagram</name>
        <t>A simplified graphical representation of the data model is used in <xref target="ni-tree"/> of this document.
The meaning of the symbols in this diagram is defined in <xref target="RFC8340"/>.</t>
      </section>
      <section anchor="prefix-in-data-node-names">
        <name>Prefix in Data Node Names</name>
        <t>In this document, names of data nodes and other data model objects
  are prefixed using the standard prefix associated with the
  corresponding YANG imported modules, as shown in the following table.</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 target="RFC6991"/></td>
            </tr>
            <tr>
              <td align="left">yang</td>
              <td align="left">ietf-yang-types</td>
              <td align="left">
                <xref target="RFC6991"/></td>
            </tr>
            <tr>
              <td align="left">ianahw</td>
              <td align="left">iana-hardware</td>
              <td align="left">
                <xref target="IANA_YANG"/></td>
            </tr>
            <tr>
              <td align="left">ni</td>
              <td align="left">ietf-network-inventory</td>
              <td align="left">RFC XXXX</td>
            </tr>
          </tbody>
        </table>
        <t>RFC Editor Note:
Please replace XXXX with the RFC number assigned to this document.
Please remove this note.</t>
      </section>
    </section>
    <section anchor="yang-data-model-for-network-inventory-overview">
      <name>YANG Data Model for Network Inventory Overview</name>
      <t>The network element definition is generalized to support physical
devices and other types of inventory objects (e.g., virtual network
elements) that can be managed as physical network elements from an
inventory perspective. The data model for Network Element presented
in this document uses a flat list of network element.</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>The component definition is also generalized to support any type of
component, such as hardware, software, or firmware.</t>
      <t>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>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-specific or technology-
specific companion augmentation data models, such as
<xref target="I-D.wzwb-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>
      <artwork type="ascii-art"><![CDATA[
  +--rw network-elements
     +--rw network-element* [ne-id]
        +--rw ne-id            string
        ............................................
        +--rw components
           +--rw component* [component-id]
              +--rw component-id            string
              ......................................
]]></artwork>
      <section anchor="common-design-for-all-inventory-objects">
        <name>Common Design for All Inventory Objects</name>
        <t>For all the inventory objects, there are some common attributes existing. Such as:</t>
        <t>Identifier: here we suggest to use uuid format which is widely implemented with systems. It is guaranteed to be globally unique.</t>
        <t>Name: name is a human-readable label information which could be used to present on GUI. This name is suggested to be provided by server.</t>
        <t>Alias: alias is also a human-readable label information which could be modified by user. It could also be present on GUI instead of name.</t>
        <t>Description: description is a human-readable information which could be also input by user. Description provides more detailed information to prompt users when performing maintenance operations.</t>
        <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>
      </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.  These attributes include:</t>
        <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>
        <t>Note: 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>
      </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, port).</t>
        <t>The component definition is generalized to both hardware components
and non-hardware components (e.g., software components).</t>
        <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>
        <t>For state data like admin-state, oper-state and so on, we consider they are related to device hardware management and not network inventory. Therefore, they are outside of scope of this document. Same for the sensor-data, they should be defined in some other performance monitoring data models instead of 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>The relationship between typical inventory objects in a physical network element can be described by <xref target="fig-hw-inventory-object-relationship"/> below:</t>
          <figure anchor="fig-hw-inventory-object-relationship">
            <name>Relationship between typical inventory objects in physical network elements</name>
            <artwork type="ascii-art"><![CDATA[
                            +-----------------+
                            | network element |
                            +-----------------+
                                    ||
                                    ||
                                    ||
                                    ||1:M
                                    ||
                                    ||
                                    ||
                                    \/
                              +-------------+
                              |   chassis/  |---+
                              | sub-chassis |<--|
                              +-------------+
                                    ||
                     ______1:N______||_____1:M_______
                     ||------------------ ---------||
                     \/                            \/
              +--------------+               +-----------+
          +---|     slot     |               |   board   |
          |-->|  /sub-slot   |               |           |
              +--------------+               +-----------+
                                                   ||
                                                   ||1:N
                                                   \/
                                             +-----------+
                                             |    port   |
                                             +-----------+
]]></artwork>
          </figure>
          <t>The "iana-hardware" module <xref target="IANA_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 actually based on the ENTITY-MIB <xref target="RFC6933"/>.</t>
          <t>For the additional attributes of specific hardware, such as CPU,
storage, port, power supply is 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.wzwb-ivy-network-inventory-software"/>.</t>
        </section>
      </section>
      <section anchor="changes-with-respect-to-rfc8348">
        <name>Changes with respect to RFC8348</name>
        <t>We re-defined some attributes listed in <xref target="RFC8348"/>, based on some integration experience for network wide inventory data.</t>
        <section anchor="new-parent-identifiers-reference">
          <name>New Parent Identifiers' Reference</name>
          <t><xref target="RFC8348"/> provided a "parent-ref" attribute, which was an identifier reference to its parent component. When the MDSC or OSS systems want to find this component's grandparent or higher level component in the hierarchy, they need to retrieve this parent-ref step by step. To reduce this iterative work, we decided to provide a list of hierarchical parent components' identifier references.</t>
          <artwork type="ascii-art"><![CDATA[
  +--ro components
     +--ro component* [uuid]
        ...................................
        +--ro parent-component-references
        |   +--ro component-reference* [index]
        |      +--ro index    uint8
        |      +--ro class?   -> ../../../class
        |      +--ro uuid?    -> ../../../uuid
        ...................................
]]></artwork>
          <t>The hierarchical components' identifier could be found by the "component-reference" list. The "index" attribute is used to order the list by the hierarchical relationship from topmost component (with the "index" set to 0) to bottom component.</t>
        </section>
        <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 define under the component list node. So, the model can be augmented with HW/SW specific-info-grouping containing attributes applicable to HW e.g. boards/slot or SW e.g. software-module/boot-loader component only.</t>
          <artwork type="ascii-art"><![CDATA[
  augment /ni:network-elements/ni:network-element:
    +--rw virtual-ne-attributes
  augment /ni:network-elements/ni:network-element/ni:components
            /ni:component:
    +--rw software-module-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* [uuid]
        ...................................
        +--ro part-number?           string
        ...................................
]]></artwork>
        </section>
      </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>
    <section anchor="ni-augment">
      <name>Extending Network Inventory</name>
      <t>This document defines the basic network inventory attributes
applicable to typical network scenarios.  For finer-grained and
specific management scenarios, the relationship between this model
and other models is illustrated in Figure 4.</t>
      <artwork type="ascii-art"><![CDATA[
             +-------------------------+
             |                         |
             | Base Network Inventory  |
             |                         |
             +------------+------------+
                          |
       +------------------+-------------------+
       |                  |                   |
+------V------+    +------V------      +------V------    +-------------+
|             |    |             |     |             |   |             |
| Hardware    |    |  Software   |     |             |   |  Inventory  |
| Extensions  |    |  Extensions |     | Entitlement |   |  Topology   |
| e.g. Power  |    |  e.g.       |     |             |   |  Mapping    |
| supply unit |    |  SW patch   |     |             |   |             |
+-------------+    +-------------+     +-------------+   +-------------+
]]></artwork>
    </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-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 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
        +--rw components
           +--rw component* [component-id]
              +--rw component-id            string
              +--rw class                   union
              +--rw uuid?                   yang:uuid
              +--rw name?                   string
              +--rw description?            string
              +--rw alias?                  string
              +--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>
    </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@2023-03-07.yang"><![CDATA[
module ietf-network-inventory {
  yang-version 1.1;
  namespace "urn:ietf:params:xml:ns:yang:ietf-network-inventory";
  prefix ni;

  import iana-hardware {
    prefix ianahw;
    reference
      "https://www.iana.org/assignments/yang-parameters";
  }
  
  import ietf-yang-types {
    prefix yang;
    reference
      "RFC6991: Common YANG Data Types.";
  }
  
  import ietf-inet-types {
    prefix inet;
    reference
      "RFC6991: 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) 2023 IETF Trust and the persons
    identified as authors of the code.  All rights reserved.

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

    This version of this YANG module is part of RFC XXXX; 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.: replace XXXX with actual RFC number and remove this
  // note.
  // RFC Ed.: update the date below with the date of RFC publication
  // and remove this note.
  
  revision 2023-10-23 {
    description
      "Initial version";
    reference
      "RFC XXXX: A YANG Data Model for Network Inventory.";
      //RFC Editor: replace XXXX with actual RFC number, update date
      //information and remove this note
  }

  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 ni:ne-type;
      description
        "A physical network element (NE). ";
    }

  grouping common-entity-attributes {
    description
      "A set of attributes which are common to all the entities
      (e.g., component, equipment room) defined in this module.";
    leaf uuid {
      type yang:uuid;
      description
        "Uniquely identifies an entity (e.g., component).";
    }
    leaf name {
      type string;
      description
        "A name for an 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 "a textual description of inventory object";
    }
    leaf alias {
      type string;
      description 
      "a alias name of inventory objects. This alias name can be 
      specified by network manager.";
    }
  }
 
  grouping ne-specific-info-grouping {
    description
      "Attributes applicable to network elements.";
    leaf hardware-rev {
      type string;
      description
        "The vendor-specific hardware revision string for the NE.";
    }
    leaf software-rev {
      type string;
      description
        "The vendor-specific software revision string for the NE.";
    }
    leaf mfg-name {
      type string;
      description "The name of the manufacturer of this NE";
    }
    leaf mfg-date {
      type yang:date-and-time;
      description "The date of manufacturing of the NE.";
    }
    leaf part-number {
      type string;
      description
        "The vendor-specific model name identifier string associated
         with this NE.  The preferred value is the customer-visible 
         part number, which may be printed on the NE itself.";
    }
    leaf serial-number {
      type string;
      description
        "The vendor-specific serial number string for the NE";
    }
    leaf product-name {
      type string;
      description
        "indicates the vendor-spefic device type infomation.";
    }
  }
  
  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
          "Network Element (NE) identifier.";
      }
      leaf ne-type {
        type identityref {
          base ne-type;
        }
        default "ne-physical";
        description
          "The type of network element (NE).";
      }
      uses common-entity-attributes;
      uses ne-specific-info-grouping;
      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
              "Component identifier";
          }
          leaf class {
            type union {
              type identityref {
                base ianahw:hardware-class;
              }
              type identityref {
                base non-hardware-component-class;
              }
            }
            mandatory true;
            description
              "The type of the component.";
          }
          uses common-entity-attributes;
          container child-component-ref {
            description
              "A placeholder for adding the reference to child 
              component(s): to further discuss whether to define 
              a child leaf-list as RFC8348 or a list of 
              sub-components as openconfig-platform.";
          }
          leaf parent-rel-pos {
            type int32 {
              range "0 .. 2147483647";
            }
            description
              "The relative position with respect to the parent
              component among all the sibling components.";
            reference
              "RFC 6933: Entity MIB (Version 4) -
                        entPhysicalParentRelPos";
          }
          container parent-component-ref {
            description
              "A placeholder for adding the reference to parent 
              component(s): to further discuss whether to define 
              a parent attribute as RFC83458 or a 
              parent-component-references container as in 
              draft-ietf-ccamp-network-inventory-yang-02.";
          }
          leaf hardware-rev {
            type string;
            description
              "The vendor-specific hardware revision string for the
              component.  The preferred value is the hardware 
              revision identifier actually printed on the component 
              itself (if present).";
            reference
              "RFC 6933: Entity MIB (Version 4) -
                        entPhysicalHardwareRev";
          }
          leaf firmware-rev {
            type string;
            description
              "The vendor-specific firmware revision string for the
              component.";
            reference
              "RFC 6933: Entity MIB (Version 4) -
                        entPhysicalFirmwareRev";
          }
          leaf software-rev {
            type string;
            description
              "The vendor-specific software revision string for the
              component.";
            reference
              "RFC 6933: Entity MIB (Version 4) -
                        entPhysicalSoftwareRev";
          }
          leaf serial-num {
            type string;
            description
              "The vendor-specific serial number string for the
              component.  The preferred value is the serial number
              string actually printed on the component itself (if
              present).";
            reference
              "RFC 6933: Entity MIB (Version 4) - 
              entPhysicalSerialNum";
          }
          leaf mfg-name {
            type string;
            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-num' nodes are only meaningful amongst 
              components with the same value of 'mfg-name'.

              If the manufacturer name string associated with the
              physical component is unknown to the server, then this
              node is not instantiated.";
            reference
              "RFC 6933: Entity MIB (Version 4) - 
              entPhysicalMfgName";
          }
          leaf part-number {
            type string;
            description
              "The vendor-specific model name identifier string
              associated with this physical component.  The preferred
              value is the customer-visible part number, which may be
              printed on the component itself.

              If the model 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) - 
              entPhysicalModelName";
          }
          leaf asset-id {
            type string;
            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";
          }
          leaf is-fru {
            type boolean;
            description
              "This node indicates whether or not this component is
              considered a 'field-replaceable unit' by the vendor.  
              If this node contains the value 'true', then this 
              component identifies a field-replaceable unit.  
              For all components that are permanently contained 
              within a field-replaceable unit, the value 'false' 
              should be returned for this node.";
            reference
              "RFC 6933: Entity MIB (Version 4) - entPhysicalIsFRU";
          }
          leaf mfg-date {
            type yang:date-and-time;
            description
              "The date of manufacturing of the managed component.";
            reference
              "RFC 6933: Entity MIB (Version 4) - 
              entPhysicalMfgDate";
          }
          leaf-list uri {
            type inet:uri;
            description
              "This node contains identification information about 
              the component.";
            reference
              "RFC 6933: Entity MIB (Version 4) - entPhysicalUris";
          }
        }
      }
    }
  }
}
]]></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>
      <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_YANG" target="https://www.iana.org/assignments/yang-parameters">
          <front>
            <title>YANG Parameters</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="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="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="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="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="7" month="July" year="2023"/>
            <abstract>
              <t>   This document considers the applicability of Abstraction and Control
   of TE Networks (ACTN) architecture to Packet Optical Integration
   (POI)in the context of IP/MPLS and optical internetworking. It
   identifies the YANG data models defined by the IETF to support this
   deployment architecture and specific scenarios relevant to Service
   Providers.

   Existing IETF protocols and data models are identified for each
   multi-layer (packet over optical) scenario with a specific focus on
   the MPI (Multi-Domain Service Coordinator to Provisioning Network
   Controllers Interface)in the ACTN architecture.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-teas-actn-poi-applicability-09"/>
        </reference>
        <reference anchor="RFC8345">
          <front>
            <title>A YANG Data Model for Network Topologies</title>
            <author fullname="A. Clemm" initials="A." surname="Clemm"/>
            <author fullname="J. Medved" initials="J." surname="Medved"/>
            <author fullname="R. Varga" initials="R." surname="Varga"/>
            <author fullname="N. Bahadur" initials="N." surname="Bahadur"/>
            <author fullname="H. Ananthakrishnan" initials="H." surname="Ananthakrishnan"/>
            <author fullname="X. Liu" initials="X." surname="Liu"/>
            <date month="March" year="2018"/>
            <abstract>
              <t>This document defines an abstract (generic, or base) YANG data model for network/service topologies and inventories. The data model serves as a base model that is augmented with technology-specific details in other, more specific topology and inventory data models.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8345"/>
          <seriesInfo name="DOI" value="10.17487/RFC8345"/>
        </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.wzwb-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="18" month="October" year="2023"/>
            <abstract>
              <t>   This document defines the YANG model for network inventory software
   extensions to support more comprehensive software components and
   software-enabled network devices, e.g. virtual Provider Edge (PE),
   virtul Fire Wall (FW).

   This document augments the 'ietf-network-inventory' data model
   defined in xxx by adding the software components identification and
   new Network Element (NE) type.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-wzwb-ivy-network-inventory-software-00"/>
        </reference>
      </references>
    </references>
    <?line 986?>

<section anchor="appendix">
      <name>Appendix</name>
      <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>
    <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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
fJwuk4H3X4/cXgzDrQAA

-->

</rfc>
