<?xml version="1.0" encoding="utf-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc version 1.6.17 (Ruby 2.7.0) -->


<!DOCTYPE rfc  [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">

]>

<?rfc comments="yes"?>

<rfc ipr="trust200902" docName="draft-yg3bp-ccamp-network-inventory-yang-02" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="Network Inventory YANG">A YANG Data Model for Network Hardware Inventory</title>

    <author initials="C." surname="Yu" fullname="Chaode Yu">
      <organization>Huawei Technologies</organization>
      <address>
        <email>yuchaode@huawei.com</email>
      </address>
    </author>
    <author initials="I." surname="Busi" fullname="Italo Busi">
      <organization>Huawei Technologies</organization>
      <address>
        <email>italo.busi@huawei.com</email>
      </address>
    </author>
    <author initials="A." surname="Guo" fullname="Aihua Guo">
      <organization>Futurewei Technologies</organization>
      <address>
        <email>aihuaguo.ietf@gmail.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="O." surname="Gonzalez de Dios" fullname="Oscar Gonzalez de Dios">
      <organization>Telefonica</organization>
      <address>
        <email>oscar.gonzalezdedios@telefonica.com</email>
      </address>
    </author>
    <author initials="V." surname="Lopez" fullname="Victor Lopez">
      <organization>Nokia</organization>
      <address>
        <email>victor.lopez@nokia.com</email>
      </address>
    </author>

    <date year="2022" month="October" day="24"/>

    
    <workgroup>CCAMP Working Group</workgroup>
    

    <abstract>


<t>This document defines a YANG data model for network hardware inventory data information.</t>

<t>The YANG data model presented in this document is intended to be used as the basis toward a generic YANG data model for network hardware inventory data information which can be augmented, when required, with technology-specific (e.g., optical) inventory data, to be defined either in a future version of this document or in another document.</t>

<t>The YANG data model defined in this document conforms to the Network Management Datastore Architecture (NMDA).</t>



    </abstract>



  </front>

  <middle>


<section anchor="introduction"><name>Introduction</name>

<t>Network hardware 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 emerging 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 what physical network devices are staying  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 inventory information with the links information reported in the network topology model.</t>

<t>The intention is to define a generic YANG 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.</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 hardware inventory data model presented in this draft.</t>

<t>For optical network hardware inventory, the network inventory YANG data model should support the use cases (4a and 4b) and requirements as defined in <xref target="ONF_TR-547"/>, in order to guarantee a seamless integration at MDSC/OSS/orchestration layers.</t>

<t>The proposed YANG data model has been analysed at the present stage to cover the requirements and use cases for Optical Network Hardware Inventory.</t>

<t>Being based on <xref target="RFC8348"/>, this data model should be a good starting point toward a generic data model and applicable to any technology. However, further analysis of requirements and use cases is needed to extend the applicability of this YANG data model to other types of networks (IP and microwave) and to identify which aspects are generic and which aspects are technology-specific for optical networks.</t>

<t>This document defines one YANG module: ietf-network-inventory.yang (<xref target="ni-yang"/>).</t>

<t>Note: review in future versions of this document the related modules, depending on the augmentation relationship.</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>

<t><list style="symbols">
  <t>client</t>
  <t>server</t>
  <t>augment</t>
  <t>data model</t>
  <t>data node</t>
</list></t>

<t>The following terms are defined in <xref target="RFC6241"/> and are not redefined
  here:</t>

<t><list style="symbols">
  <t>configuration data</t>
  <t>state data</t>
</list></t>

<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-MTOSI"/>.</t>

<t>Following terms are used for the representation of the hierarchies in the network hardware inventory.</t>

<t>Network Element:</t>

<ul empty="true"><li>
  <t>a device installed on one or several chassis and can afford some specific transmission function independently.</t>
</li></ul>

<t>Rack:</t>

<ul empty="true"><li>
  <t>a holder of the device and provides power supply for the device in it.</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>holders and equipment of the network element, including chassis, slot, sub-slot, board and port.</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.</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>

<texttable title="Prefixes and corresponding YANG modules" anchor="tab-prefixes">
      <ttcol align='left'>Prefix</ttcol>
      <ttcol align='left'>Yang Module</ttcol>
      <ttcol align='left'>Reference</ttcol>
      <c>ianahw</c>
      <c>iana-hardware</c>
      <c><xref target="RFC8348"/></c>
      <c>ni</c>
      <c>ietf-network-inventory</c>
      <c>RFC XXXX</c>
      <c>yang</c>
      <c>ietf-yang-types</c>
      <c><xref target="RFC6991"/></c>
</texttable>

<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-hardware-inventory"><name>YANG Data Model for Network Hardware Inventory</name>

<section anchor="yang-model-overview"><name>YANG Model Overview</name>

<t>Based on TMF classification in <xref target="TMF-MTOSI"/>, inventory objects 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. With the requirement of GIS and on-demand domain controller selection raised, the equipment room becomes a new inventory object to be managed besides TMF classification.</t>

<t>Logically,  the relationship between these inventory objects can be described by <xref target="fig-inventory-object-relationship"/> below:</t>

<figure title="Relationship between inventory objects" anchor="fig-inventory-object-relationship"><artwork type="ascii-art"><![CDATA[
                +-------------+
                |  inventory  |
                +-------------+
                    // \\
              1:N  //   \\ 1:M
                  //     \\
  +----------------+     +-----------------+ 
  | equipment room |     | network element |
  +----------------+     +-----------------+
          ||                     ||
          || 1:N                 ||
          \/                     || 
    +------------+               ||1:M
    |    rack    |               ||
    +------------+               ||
          ||                     ||
          || 1:N                 \/
          ||______________\+------------+
          |---------------/|   chassis  |
                           +------------+
                                 ||
                  ______1:N______||_____1:M_______
                  ||------------------ ---------||
                  \/                            \/      
           +--------------+               +-----------+
           | slot/subslot |               |   board   |
           +--------------+               +-----------+
                                                ||
                                                ||1:N
                                                \/
                                          +-----------+ 
                                          |    port   |
                                          +-----------+

]]></artwork></figure>

<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>Considering there are some special scenarios, there is no direct relationship between the rack and network element. In some cases, one network element contains multiple racks while in other cases one rack contains several shelves belonging to one or more network elements.</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 network hardware 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 hardware 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>

<t>Note: review in future versions of this document whether to re-use definitions from <xref target="RFC8348"/> or use schema-mount.</t>

<figure><artwork type="ascii-art"><![CDATA[
  +--ro network-inventory
     +--ro equipment-rooms
     |  +--ro equipment-room* [uuid]
     |     +--ro uuid        yang:uuid
     |     ...................................
     |     +--ro racks
     |        +--ro rack* [uuid]
     |           +--ro uuid           yang:uuid
     |           ...................................
     |           +--ro contained-chassis* [ne-ref component-ref]
     |              +--ro ne-ref?          leafref
     |              +--ro component-ref?   leafref
     +--ro network-elements
        +--ro network-element* [uuid]
           +--ro uuid          yang:uuid
           ...................................
           +--ro components
              +--ro component* [uuid]
                 +--ro uuid              yang:uuid
                 ...................................
]]></artwork></figure>

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

<t>Location: location is a common management requirement of operators. This location could be an absolute position (e.g. mailing address), or a relative position (e.g. port index). Different types of inventory objects may require different types of position.</t>

<figure><artwork type="ascii-art"><![CDATA[
module: ietf-network-inventory
   +--ro network-inventory
      +--ro equipment-rooms
      |  +--ro equipment-room* [uuid]
      |     +--ro uuid           yang:uuid
      |     +--ro name?          string
      |     +--ro description?   string
      |     +--ro alias?         string
      |     +--ro location?      string
      |     ...................................
      |     +--ro racks
      |        +--ro rack* [uuid]
      |           +--ro uuid                 yang:uuid
      |           +--ro name?                string
      |           +--ro description?         string
      |           +--ro alias?               string
      |           +--ro rack-location
      |           |  +--ro equipment-room-name?   leafref
      |           |  +--ro row-number?            uint32
      |           |  +--ro column-number?         uint32
      |           ...................................
      +--ro network-elements
         +--ro network-element* [uuid]
            +--ro uuid             yang:uuid
            +--ro name?            string
            +--ro description?     string
            +--ro alias?           string
            +--ro ne-location
            |  +--ro equipment-room-name*   leafref
            ...................................
            +--ro components
               +--ro component* [uuid]
                  +--ro uuid                     yang:uuid
                  +--ro name?                    string
                  +--ro description?             string
                  +--ro alias?                   string
                  +--ro location                 string
                  ...................................
]]></artwork></figure>

</section>
<section anchor="reference-RFC8348"><name>Reference from RFC8348</name>

<t>The YANG data model for network hardware 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>

<figure><artwork type="ascii-art"><![CDATA[
  +--ro components
     +--ro component* [uuid]
        +--ro uuid              yang:uuid
        +--ro name?             string
        +--ro description?      string
        +--ro class?            identityref
        +--ro contained-child*  -> ../uuid
        +--ro hardware-rev?     string
        +--ro firmware-rev?     string
        +--ro software-rev?     string
        +--ro serial-num?       string
        +--ro mfg-name?         string
        +--ro asset-id?         string
        +--ro is-fru?           boolean
        +--ro mfg-date?         yang:date-and-time
        +--ro uri*              inet:uri
]]></artwork></figure>

<t>For state data like admin-state, oper-state and so on, we consider they are related to device hardware management and not hardware 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>

<t>We re-defined some attributes listed in <xref target="RFC8348"/>, based on some integration experience for network wide inventory data.</t>

</section>
<section anchor="changes-with-respect-to-rfc8348"><name>Changes with respect to RFC8348</name>

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

<figure><artwork type="ascii-art"><![CDATA[
  +--ro components
     +--ro component* [uuid]
        ...................................
        +--ro parent-references
        |  +--ro equipment-room-uuid?    leafref
        |  +--ro ne-uuid?                leafref
        |  +--ro rack-uuid?              leafref
        |  +--ro component-references
        |     +--ro component-reference* [index]
        |        +--ro index    uint8
        |        +--ro class?   leafref
        |        +--ro uuid?    leafref
        ...................................
]]></artwork></figure>

<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, we defined a choice-case structure for this component-specific extension, as follows:</t>

<figure><artwork type="ascii-art"><![CDATA[
  +--ro components
     +--ro component* [uuid]
        ...................................
        +--ro (component-class)?
           +--:(chassis)
           |  +--ro chassis-specific-info
           +--:(container)
           |  +--ro slot-specific-info
           +--:(module)
           |  +--ro board-specific-info
           +--:(port)
              +--ro port-specific-info
        ...................................
]]></artwork></figure>

<t>Note: The detail of each *-specific-info YANG container is still under discussion, and the leaf attributes will be defined in future.</t>

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

<figure><artwork type="ascii-art"><![CDATA[
  +--ro components
     +--ro component* [uuid]
        ...................................
        +--ro part-number?           string
        ...................................
]]></artwork></figure>

</section>
</section>
<section anchor="equipment-room"><name>Equipment Room</name>

<t>Note: add some more attributes about equipment room in the future.</t>

</section>
<section anchor="rack"><name>Rack</name>

<t>Besides the common attributes mentioned in above section, rack could have some specific attributes, such as appearance-related attributes and electricity-related attributes.
The height, depth and width are described by the figure below (please consider that the door of the rack is facing the user):</t>

<figure title="height, width and depth of rack" anchor="fig-rack-appearance"><artwork type="ascii-art"><![CDATA[
                 ----------------      ---
                /|              /|      |
               / |             / |      | 
              /  |            /  |      |
             ----|-----------|   |      |
             |   |           |   |      |
             |   |           |   |      |
             |   |           |   |      |
             |   |           |   |      |
             |   |           |   |      |
             |   |           |   |    height
             |   |           |   |      |
             |   |           |   |      |
             |   |           |   |      |
             |   | Door    Q |   |      |
             |   |         Q |   |      |
             |   |           |   |      |
             |   |           |   |      |
             |   |           |   |      |
             |   |           |   |      |
             |   |           |   |      |
             |   |           |   |      |
             |   |           |   |      |
             |   /-----------|----     ---
             |  /            |   /      /
             | /             |  /      depth
             |/              | /      /
             -----------------      ---
             |______width____|
             |               |

]]></artwork></figure>

<t>The rack attributes include:</t>

<figure><artwork type="ascii-art"><![CDATA[
   +--ro racks
      +--ro rack* [uuid]
         ...................................
         +--ro height?              uint16
         +--ro width?               uint16
         +--ro depth?               uint16
         +--ro max-voltage?         uint16
         ...................................
]]></artwork></figure>

<t>Max-voltage: the maximum voltage supported by the rack.</t>

</section>
<section anchor="network-element"><name>Network Element</name>

<t>We consider that some of the attributes defined in <xref target="RFC8348"/> for components are also applicable for network element. These attributes include:</t>

<figure><artwork type="ascii-art"><![CDATA[
      +--ro network-elements
         +--ro network-element* [uuid]
            ...................................
            +--ro hardware-rev?    string
            +--ro firmware-rev?    string
            +--ro software-rev?    string
            +--ro mfg-name?        string
            +--ro mfg-date?        yang:date-and-time
            +--ro part-number?     string
            +--ro serial-number?   string
            +--ro product-name?    string
            ...................................
]]></artwork></figure>

<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>
<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="some-other-considerations"><name>Some Other Considerations</name>

<t>Note: review in future versions of this document whether the component list should be under the network-inventory instead of the network-element container.</t>

<t>Note that in <xref target="RFC8345"/>, topology and inventory are two subsets of network information. However, considering the complexity of the existing topology models and having a better extension capability, we define a separate root for the inventory model. We will consider some other ways to do some associations between the topology model and inventory model in the future.</t>

<t>Note: review in future versions of this document whether network hardware inventory should be defined as an augmentation of the network model defined in <xref target="RFC8345"/> instead of under a new network-inventory root.</t>

<t>The proposed YANG data model has been analysed so far to cover the requirements and use cases for Optical Network Inventory.</t>

<t>Further analysis of requirements and use cases is needed to extend the applicability of this YANG data model to other types of networks (IP and microwave) and to identify which aspects are generic and which aspects are technology-specific for optical.</t>

</section>
</section>
<section anchor="ni-tree"><name>Network Hardware 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.yang (<xref target="ni-yang"/>).</t>

<figure title="Network inventory tree diagram" anchor="fig-ni-tree"><artwork type="ascii-art" name="ietf-network-inventory.tree"><![CDATA[
module: ietf-network-inventory
  +--ro network-inventory
     +--ro equipment-rooms
     |  +--ro equipment-room* [uuid]
     |     +--ro uuid           yang:uuid
     |     +--ro name?          string
     |     +--ro description?   string
     |     +--ro alias?         string
     |     +--ro location?      string
     |     +--ro racks
     |        +--ro rack* [uuid]
     |           +--ro uuid                 yang:uuid
     |           +--ro name?                string
     |           +--ro description?         string
     |           +--ro alias?               string
     |           +--ro rack-location
     |           |  +--ro equipment-room-name?   leafref
     |           |  +--ro row-number?            uint32
     |           |  +--ro column-number?         uint32
     |           +--ro rack-number?         uint32
     |           +--ro height?              uint16
     |           +--ro width?               uint16
     |           +--ro depth?               uint16
     |           +--ro max-voltage?         uint16
     |           +--ro contained-chassis* [ne-ref component-ref]
     |              +--ro ne-ref           leafref
     |              +--ro component-ref    leafref
     +--ro network-elements
        +--ro network-element* [uuid]
           +--ro uuid             yang:uuid
           +--ro name?            string
           +--ro description?     string
           +--ro alias?           string
           +--ro ne-location
           |  +--ro equipment-room-name*   leafref
           +--ro hardware-rev?    string
           +--ro firmware-rev?    string
           +--ro software-rev?    string
           +--ro mfg-name?        string
           +--ro mfg-date?        yang:date-and-time
           +--ro part-number?     string
           +--ro serial-number?   string
           +--ro product-name?    string
           +--ro components
              +--ro component* [uuid]
                 +--ro uuid                           yang:uuid
                 +--ro name?                          string
                 +--ro description?                   string
                 +--ro alias?                         string
                 +--ro location?                      string
                 +--ro class?                         identityref
                 +--ro contained-child*               -> ../uuid
                 +--ro parent-rel-pos?                int32
                 +--ro parent-references
                 |  +--ro equipment-room-uuid?    leafref
                 |  +--ro ne-uuid?                leafref
                 |  +--ro rack-uuid?              leafref
                 |  +--ro component-references
                 |     +--ro component-reference* [index]
                 |        +--ro index    uint8
                 |        +--ro class?   -> ../../../../class
                 |        +--ro uuid?    -> ../../../../uuid
                 +--ro hardware-rev?                  string
                 +--ro firmware-rev?                  string
                 +--ro software-rev?                  string
                 +--ro serial-num?                    string
                 +--ro mfg-name?                      string
                 +--ro part-number?                   string
                 +--ro asset-id?                      string
                 +--ro is-fru?                        boolean
                 +--ro mfg-date?
                 |       yang:date-and-time
                 +--ro uri*                           inet:uri
                 +--ro (component-class)?
                    +--:(chassis)
                    |  +--ro chassis-specific-info
                    +--:(container)
                    |  +--ro slot-specific-info
                    +--:(module)
                    |  +--ro board-specific-info
                    +--:(port)
                       +--ro port-specific-info
]]></artwork></figure>

</section>
<section anchor="ni-yang"><name>YANG Model for Network Hardware Inventory</name>

<figure title="Network inventory YANG module" anchor="fig-ni-yang"><sourcecode type="yang" markers="true" name="ietf-network-inventory@2022-07-11.yang"><![CDATA[
module ietf-network-inventory {
  yang-version 1.1;
  namespace "urn:ietf:params:xml:ns:yang:ietf-network-inventory";
  prefix ni;

  import ietf-yang-types {
    prefix yang;
    reference
      "RFC6991: Common YANG Data Types.";
  }
  
  import iana-hardware {
    prefix ianahw;
    reference
      "RFC 8348: A YANG Data Model for Hardware Management.";
  }
  
  import ietf-inet-types {
    prefix inet;
  } 
  
  organization
    "IETF CCAMP Working Group";
  contact
    "WG Web:   <https://datatracker.ietf.org/wg/ccamp/>
     WG List:  <mailto:ccamp@ietf.org>

     Editor:   Chaode Yu
               <yuchaode@huawei.com>

     Editor:   Italo Busi
               <italo.busi@huawei.com>

     Editor:   Aihua Guo
               <aihuaguo.ietf@gmail.com>

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

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

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

  description
    "This module defines a model for retrieving network inventory.

    The model fully conforms to the Network Management 
    Datastore Architecture (NMDA).
    
    Copyright (c) 2022 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 2022-07-11 {
    description
      "version 3.0.0";
    reference
      "draft-yg3bp-ccamp-inventory-yang-01: A YANG Data
      Model for Network Inventory.";
  }
  
  revision 2022-03-04 {
    description
      "version 3.0.0";
    reference
      "draft-yg3bp-ccamp-inventory-yang-00: A YANG Data
      Model for Network Inventory.";
  }
  
  revision 2021-11-09 {
    description
      "version 2.0.0";
    reference
      "draft-yg3bp-ccamp-optical-inventory-yang-00: A YANG Data
      Model for Optical Network Inventory.";
  }

  revision 2021-10-25 {
    description
      "Initial revision.";
    reference
      "draft-yg3bp-ccamp-optical-inventory-yang-00: A YANG Data
      Model for Optical Network Inventory.";
  }
  
  container network-inventory {
    config false;
    description
      "The top-level container for the network inventory
      information.";
    uses equipment-rooms-grouping;
    uses network-elements-grouping;
  }
  
  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 network-elements-grouping {
    description
      "The attributes of the network elements.";
    container network-elements {
      description
        "The container for the list of network elements.";
      list network-element {
        key uuid;
        description
          "The list of network elements within the network.";
        uses common-entity-attributes;
        container ne-location {
          description
            "To be added.";
          leaf-list equipment-room-name {
            type leafref {
              path "/ni:network-inventory/ni:equipment-rooms/" +
                   "ni:equipment-room/ni:name";
            }
            description
              "Names of equipment rooms where the NE is located. 
              Please note that a NE could be located in several 
              equipment rooms.";
          }
        }
        uses ne-specific-info-grouping;
        uses components-grouping;
      }
    }
  }
  
  grouping ne-specific-info-grouping {
    description
      "To be added.";
    leaf hardware-rev {
      type string;
      description
        "The vendor-specific hardware revision string for the NE.";
    }
    leaf firmware-rev {
      type string;
      description
        "The vendor-specific firmware 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.";
    }
  }
  
  grouping equipment-rooms-grouping {
    description
      "The attributes of the equipment rooms.";
    container equipment-rooms {
      description
        "The container for the list of equipment rooms.";
      list equipment-room {
        key uuid;
        description
          "The list of equipment rooms within the network.";
        uses common-entity-attributes;
        leaf location {
          type string;
          description
            "compared with the location information of the other
            inventory objects, a GIS address is preferred for
            equipment room";
        }
        container racks {
          description
            "To be added.";
          list rack {
            key uuid;
            description
              "The list of racks within an equipment room.";
            uses common-entity-attributes;
            uses rack-specific-info-grouping;
            list contained-chassis {
              key "ne-ref component-ref";
              description
                "The list of chassis within a rack.";
              leaf ne-ref {
                type leafref {
                  path "/ni:network-inventory/ni:network-elements"
                  + "/ni:network-element/ni:uuid";
                }
                description
                  "The reference to the network element containing
                  the chassis component.";
              }
              leaf component-ref {
                type leafref {
                  path "/ni:network-inventory/ni:network-elements"
                  + "/ni:network-element[ni:uuid"
                  + "=current()/../ne-ref]/ni:components"
                  + "/ni:component/ni:uuid";
                }
                description
                  "The reference to the chassis component within 
                  the network element and contained by the rack.";
              }
            }
          }
        }
      }
    }
  }
  
  grouping rack-specific-info-grouping {
    description
      "To be added.";
    container rack-location {
      description
        "To be added.";
      leaf equipment-room-name {
        type leafref {
          path "/ni:network-inventory/ni:equipment-rooms"
          + "/ni:equipment-room/ni:name";
        }
        description 
        "Name of equipment room where this rack is located.";
      }
      leaf row-number {
        type uint32;
        description
          "Identifies the row within the equipment room where
          the rack is located.";
      }
      leaf column-number {
        type uint32;
        description
          "Identifies the physical location of the rack within
          the column.";
      }
    }
    leaf rack-number {
      type uint32;
      description
        "An integer identifier of rack.";
    }
    leaf height {
      type uint16;
      units millimeter;
      description
        "To be added.";
    }
    leaf width {
      type uint16;
      units millimeter;
      description
        "To be added.";
    }
    leaf depth {
      type uint16;
      units millimeter;
      description
        "To be added.";
    }
    leaf max-voltage {
      type uint16;
      units volt;
      description
        "The maximum voltage could be supported by the rack.";
    }
  }

  grouping components-grouping {
    description
      "The attributes of the hardware components.";
    container components {
      description
        "The container for the list of components.";
      list component {
        key uuid;
        description
          "The list of components within a network element.";
        uses common-entity-attributes;
        leaf location {
          type string;
          description
            "To be added.
            
            In optical transport network, the location string is 
            using the following pattern: 
              '/ne=<nw-ne-name>[/r=<r_index>][/sh=<sh_index>
              [/s_sh=<s_sh_index> ...]][[/sl=<sl_index>
              [/s_sl=<s_sl_index> ...]][/p=<p_index> …]]'
            ";
        }
        leaf class {
          type identityref {
            base ianahw:hardware-class;
          }
          description
            "An indication of the general hardware type of the
             component.";
          reference
            "RFC 8348: A YANG Data Model for Hardware Management.";
        }
        leaf-list contained-child {
          type leafref {
            path "../ni:uuid";
          }
          description
            "The child components' identifier that are physically 
            contained by this component.";          
        }
        leaf parent-rel-pos {
          type int32 {
            range "0 .. 2147483647";
          }
          description
            "To be added.";
          reference
            "RFC 6933: Entity MIB (Version 4) -
                       entPhysicalParentRelPos";
        }
        container parent-references {
          description
            "To be added.";
          leaf equipment-room-uuid {
            type leafref {
              path "/ni:network-inventory/ni:equipment-rooms/" +
                   "ni:equipment-room/ni:uuid";
            }
            description
              "To be added.";
          }
          leaf ne-uuid {
            type leafref {
              path "/ni:network-inventory/ni:network-elements/" +
                   "ni:network-element/ni:uuid";
            }
            description
              "To be added.";
          }
          leaf rack-uuid {
            type leafref {
              path "/ni:network-inventory/ni:equipment-rooms/" +
                   "ni:equipment-room/ni:racks/ni:rack/ni:uuid";
            }
            description
              "To be added.";
          }
          container component-references {
            description
              "To be added.";
            list component-reference {
              key index;
              description
                "this list object is used to indicate its
                hierarchial parent components' identifier.
                This hierarchial relation can be found by index 
                parameter. The topest parent component should be 
                0-index.";
              leaf index {
                type uint8;
                description
                  "To be added.";
              }
              leaf class {
                type leafref {
                  path "../../../../ni:class";
                }
                description
                  "To be added.";
              }
              leaf uuid {
                type leafref {
                  path "../../../../ni:uuid";
                }
                description
                  "To be added.";
              }
            }
          }
        }
        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";
        }
        uses component-specific-info-grouping;
      }
    }
  }
  
  grouping component-specific-info-grouping {
    description 
      "In case if there are some missing attributes of component not 
      defined by RFC8348. These attributes could be 
      component-specific.
      Here we provide a extension structure for all the components 
      we recognized. We will enrich these component specifc 
      containers in the future.";
    choice component-class {
      description
        "To be added.";
      case chassis {
        when "./class = 'ianahw:chassis'";
        container chassis-specific-info {
          description 
            "This container contains some attributes belong to
            chassis only.";
          uses chassis-specific-info-grouping;
        }
      }
      case container {
        when "./class = 'ianahw:container'";
        container slot-specific-info {
          description 
            "This container contains some attributes belong to
            slot or sub-slot only.";
          uses slot-specific-info-grouping;
        }
      }
      case module {
        when "./ni:class = 'ianahw:module'";
        container board-specific-info {
          description 
            "This container contains some attributes belong to
            board only.";
          uses board-specific-info-grouping;
        }
      }
      case port {
        when "./ni:class = 'ianahw:port'";
        container port-specific-info {
          description 
            "This container contains some attributes belong to
            port only.";
          uses port-specific-info-grouping;
        }
      }
    //TO BE ADDED: transceiver
    }
  }
  
  grouping chassis-specific-info-grouping {
  //To be enriched in the future.
    description
      "To be added.";
  }
  
  grouping slot-specific-info-grouping {
  //To be enriched in the future.
    description
      "To be added.";
  }
  
  grouping board-specific-info-grouping {
  //To be enriched in the future.
    description
      "To be added.";
  }
  
  grouping port-specific-info-grouping {
  //To be enriched in the future.
    description
      "To be added.";
  }
}
]]></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 title='Normative References'>

<reference anchor="TMF-MTOSI" target="https://www.tmforum.org/resources/suite/mtosi-4-0/">
  <front>
    <title>TMF MTOSI 4.0 Equipment Model</title>
    <author >
      <organization>TM Forum (TMF)</organization>
    </author>
    <date year="2008"/>
  </front>
  <seriesInfo name="TMF SD2-20_EquipmentModel" value=""/>
</reference>




<reference anchor='RFC8348' target='https://www.rfc-editor.org/info/rfc8348'>
<front>
<title>A YANG Data Model for Hardware Management</title>
<author fullname='A. Bierman' initials='A.' surname='Bierman'><organization/></author>
<author fullname='M. Bjorklund' initials='M.' surname='Bjorklund'><organization/></author>
<author fullname='J. Dong' initials='J.' surname='Dong'><organization/></author>
<author fullname='D. Romascanu' initials='D.' surname='Romascanu'><organization/></author>
<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' target='https://www.rfc-editor.org/info/rfc8342'>
<front>
<title>Network Management Datastore Architecture (NMDA)</title>
<author fullname='M. Bjorklund' initials='M.' surname='Bjorklund'><organization/></author>
<author fullname='J. Schoenwaelder' initials='J.' surname='Schoenwaelder'><organization/></author>
<author fullname='P. Shafer' initials='P.' surname='Shafer'><organization/></author>
<author fullname='K. Watsen' initials='K.' surname='Watsen'><organization/></author>
<author fullname='R. Wilton' initials='R.' surname='Wilton'><organization/></author>
<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' target='https://www.rfc-editor.org/info/rfc7950'>
<front>
<title>The YANG 1.1 Data Modeling Language</title>
<author fullname='M. Bjorklund' initials='M.' role='editor' surname='Bjorklund'><organization/></author>
<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' target='https://www.rfc-editor.org/info/rfc6241'>
<front>
<title>Network Configuration Protocol (NETCONF)</title>
<author fullname='R. Enns' initials='R.' role='editor' surname='Enns'><organization/></author>
<author fullname='M. Bjorklund' initials='M.' role='editor' surname='Bjorklund'><organization/></author>
<author fullname='J. Schoenwaelder' initials='J.' role='editor' surname='Schoenwaelder'><organization/></author>
<author fullname='A. Bierman' initials='A.' role='editor' surname='Bierman'><organization/></author>
<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' target='https://www.rfc-editor.org/info/rfc2119'>
<front>
<title>Key words for use in RFCs to Indicate Requirement Levels</title>
<author fullname='S. Bradner' initials='S.' surname='Bradner'><organization/></author>
<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' target='https://www.rfc-editor.org/info/rfc8174'>
<front>
<title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
<author fullname='B. Leiba' initials='B.' surname='Leiba'><organization/></author>
<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' target='https://www.rfc-editor.org/info/rfc8340'>
<front>
<title>YANG Tree Diagrams</title>
<author fullname='M. Bjorklund' initials='M.' surname='Bjorklund'><organization/></author>
<author fullname='L. Berger' initials='L.' role='editor' surname='Berger'><organization/></author>
<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' target='https://www.rfc-editor.org/info/rfc6991'>
<front>
<title>Common YANG Data Types</title>
<author fullname='J. Schoenwaelder' initials='J.' role='editor' surname='Schoenwaelder'><organization/></author>
<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>




    </references>

    <references title='Informative References'>

<reference anchor="ONF_TR-547" target="https://opennetworking.org/wp-content/uploads/2020/08/TR-547-TAPI-v2.1.3-Reference-Implementation-Agreement-1.pdf">
  <front>
    <title>TAPI v2.1.3 Reference Implementation Agreement</title>
    <author >
      <organization>Open Networking Foundation (ONF)</organization>
    </author>
    <date year="2020" month="July"/>
  </front>
  <seriesInfo name="ONF TR-547 TAPI RIA v1.0" value=""/>
</reference>



<reference anchor='I-D.ietf-teas-actn-poi-applicability'>
   <front>
      <title>Applicability of Abstraction and Control of Traffic Engineered Networks (ACTN) to Packet Optical Integration (POI)</title>
      <author fullname='Fabio Peruzzini' initials='F.' surname='Peruzzini'>
         <organization>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>Ericsson</organization>
      </author>
      <date day='10' month='July' year='2022'/>
      <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 being defined by the IETF to support
   this deployment architecture and specific scenarios relevant for
   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-07'/>
   <format target='https://www.ietf.org/archive/id/draft-ietf-teas-actn-poi-applicability-07.txt' type='TXT'/>
</reference>



<reference anchor='RFC8345' target='https://www.rfc-editor.org/info/rfc8345'>
<front>
<title>A YANG Data Model for Network Topologies</title>
<author fullname='A. Clemm' initials='A.' surname='Clemm'><organization/></author>
<author fullname='J. Medved' initials='J.' surname='Medved'><organization/></author>
<author fullname='R. Varga' initials='R.' surname='Varga'><organization/></author>
<author fullname='N. Bahadur' initials='N.' surname='Bahadur'><organization/></author>
<author fullname='H. Ananthakrishnan' initials='H.' surname='Ananthakrishnan'><organization/></author>
<author fullname='X. Liu' initials='X.' surname='Liu'><organization/></author>
<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>




    </references>


<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 avoid that our inventory data model cannot cover these devices' inventory data, we have compared our inventory data model with the openconfig-platform.yang 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>

<texttable title="Comparison between openconfig-platform and inventory data model" anchor="tab-oc">
      <ttcol align='left'>Attributes in oc-platform</ttcol>
      <ttcol align='left'>Attributes in our model</ttcol>
      <ttcol align='left'>remark</ttcol>
      <c>name</c>
      <c>name</c>
      <c>&#160;</c>
      <c>type</c>
      <c>class</c>
      <c>&#160;</c>
      <c>id</c>
      <c>uuid</c>
      <c>&#160;</c>
      <c>location</c>
      <c>location</c>
      <c>&#160;</c>
      <c>description</c>
      <c>description</c>
      <c>&#160;</c>
      <c>mfg-name</c>
      <c>mfg-name</c>
      <c>&#160;</c>
      <c>mfg-date</c>
      <c>mfg-date</c>
      <c>&#160;</c>
      <c>hardware-version</c>
      <c>hardware-rev</c>
      <c>&#160;</c>
      <c>firmware-version</c>
      <c>firmware-rev</c>
      <c>&#160;</c>
      <c>software-version</c>
      <c>software-rev</c>
      <c>&#160;</c>
      <c>serial-no</c>
      <c>serial-num</c>
      <c>&#160;</c>
      <c>part-no</c>
      <c>part-number</c>
      <c>&#160;</c>
      <c>clei-code</c>
      <c>&#160;</c>
      <c>TBD</c>
      <c>removable</c>
      <c>is-fru</c>
      <c>&#160;</c>
      <c>oper-status</c>
      <c>&#160;</c>
      <c>state data</c>
      <c>empty</c>
      <c>contained-child?</c>
      <c>If there is no contained child, it is empty.</c>
      <c>parent</c>
      <c>parent-references</c>
      <c>&#160;</c>
      <c>redundant-role</c>
      <c>&#160;</c>
      <c>TBD</c>
      <c>last-switchover-reason</c>
      <c>&#160;</c>
      <c>state data</c>
      <c>last-switchover-time</c>
      <c>&#160;</c>
      <c>state data</c>
      <c>last-reboot-reason</c>
      <c>&#160;</c>
      <c>state data</c>
      <c>last-reboot-time</c>
      <c>&#160;</c>
      <c>state data</c>
      <c>switchover-ready</c>
      <c>&#160;</c>
      <c>state data</c>
      <c>temperature</c>
      <c>&#160;</c>
      <c>performance data</c>
      <c>memory</c>
      <c>&#160;</c>
      <c>performance data</c>
      <c>allocated-power</c>
      <c>&#160;</c>
      <c>TBD</c>
      <c>used-power</c>
      <c>&#160;</c>
      <c>TBD</c>
      <c>pcie</c>
      <c>&#160;</c>
      <c>alarm  data</c>
      <c>properties</c>
      <c>&#160;</c>
      <c>TBD</c>
      <c>subcomponents</c>
      <c>contained-child</c>
      <c>&#160;</c>
      <c>chassis</c>
      <c>chassis-specific-info</c>
      <c>&#160;</c>
      <c>port</c>
      <c>port-specific-info</c>
      <c>&#160;</c>
      <c>power-supply</c>
      <c>&#160;</c>
      <c>TBD</c>
      <c>fan</c>
      <c>&#160;</c>
      <c>Fan is considered as a specific board. And no need to define as a single component</c>
      <c>fabric</c>
      <c>&#160;</c>
      <c>TBD</c>
      <c>storage</c>
      <c>&#160;</c>
      <c>For Optical and IP technology, no need to manage storage on network element</c>
      <c>cpu</c>
      <c>&#160;</c>
      <c>For Optical and IP technology, no need to manage CPU on network element</c>
      <c>integrated-circuit</c>
      <c>board-specific-info</c>
      <c>&#160;</c>
      <c>backplane</c>
      <c>&#160;</c>
      <c>Backplane is considered as a part of board. And no need to define as a single component</c>
      <c>software-module</c>
      <c>&#160;</c>
      <c>TBD</c>
      <c>controller-card</c>
      <c>&#160;</c>
      <c>Controller card is considered as a specific functional board. And no need to define as a single component</c>
</texttable>

<t>As it mentioned in <xref target="reference-RFC8348"/> 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. And for some of them, there is no need to manage for operators, such as 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>


  </back>

<!-- ##markdown-source:
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

-->

</rfc>

