<?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-ietf-ccamp-network-inventory-yang-01" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="Network Hardware 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="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="March" day="10"/>

    
    <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 hardware 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 hardware inventory management and monitoring is a critical part for ensuring the network stays healthy, well-planned, and functioning in the operator's network. Network hardware 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 hardware 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 hardware 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 hardware 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 hardware 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 two YANG modules: "ietf-network-hardware-inventory", defined in <xref target="ni-yang"/>, and "ietf-hw-inventory-ref-topo", defined in <xref target="ref-yang"/>.</t>

<t>The YANG data models defined in this document conform 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_SD2-20"/>.</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="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>inet</c>
      <c>ietf-inet-types</c>
      <c><xref target="RFC6991"/></c>
      <c>yang</c>
      <c>ietf-yang-types</c>
      <c><xref target="RFC6991"/></c>
      <c>ianahw</c>
      <c>iana-hardware</c>
      <c><xref target="IANA_YANG"/></c>
      <c>ni</c>
      <c>ietf-network-hardware-inventory</c>
      <c>RFC XXXX</c>
      <c>hirt</c>
      <c>ietf-hw-inventory-ref-topo</c>
      <c>RFC XXXX</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_SD2-20"/>, 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 Hardware 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 hardware 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-hardware-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-hardware-inventory
   +--ro network-hardware-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>Some of the definitions taken from <xref target="RFC8348"/> are actually based on the ENTITY-MIB <xref target="RFC6933"/>.</t>

<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 anchor="relationship-between-hardware-inventory-and-network-topology-models"><name>Relationship between Hardware Inventory and Network Topology models</name>

<t>Network topology is a logical abstraction based on hardware inventory objects. The abstraction may be based on technology requirements (e.g., layer 0 or layer 1 resources) or on some specific requirements (e.g., for path computation or service provisioning).</t>

<t>Therefore the relationship between hardware inventory objects and network topology objects can be 1:N (N&gt;=1).</t>

<t>Taking the Optical technology as example, an Optical Transport Network (OTN) Network Element (NE) can be installed with several kinds of boards, including an Ethernet client signal switching board, a line board which is used for OTN layer switching. This line board may also be used as a starting point for the WDM layer. In terms of technologies, this OTN NE supports multi-layer network topology connections, so that it should appear in L0, L1 and L2 network topology.</t>

<t>It is important to describe this relationship for the sake of network Operation and Maintenance (O&amp;M). For example, the actual path of a connection is described by the objects in network topology. When there is a failure along this connection, the O&amp;M engineers are more concerned with the physical location information behind the network objects for troubleshooting.</t>

<t>Generally speaking, a node object in the network topology corresponds to a network element object in the hardware inventory. A Link Termination Point (LTP) object in the network topology corresponds to a port component in the hardware inventory. A link object in the network topology corresponds to a fiber/cable object in the hardware inventory.</t>

<t>NOTE: take fiber&amp;cable object into scope in the future version.</t>

<t>Compared with network topology, hardware inventory objects are the most basic of the network: from an automation perspective, the MDSC or OSS systems would integrate with hardware inventory data before network topology data.</t>

<t>Therefore it is better to keep separated the network topology information and the hardware inventory information: the "ietf-hw-inventory-ref-topo" YANG module provides this relationship augmenting the network topology model, when required, with references between network topology objects and corresponding hardware inventory objects.</t>

<t>This figure below shows the relationship between the three modules:</t>

<figure title="Relationship between the three YANG modules" anchor="fig-modules-relationship"><artwork type="ascii-art"><![CDATA[
     +------------------+
     | Network topology |
     |      module      |
     +------------------+
             ^
             |
             |augments
             |
     +------------------+          +------------------+
     | ietf-hw-inventory| imports  | ietf-network-hard|
     |   -ref-topo      |--------> |  ware-inventory  |
     +------------------+          +------------------+
]]></artwork></figure>

<figure><artwork type="ascii-art"><![CDATA[
module: ietf-hw-inventory-ref-topo
augment /nw:networks/nw:network/nw:node:
   +--ro inventory-id?   leafref
augment /nw:networks/nw:network/nw:node/nt:termination-point:
   +--ro inventory-id?   leafref
]]></artwork></figure>

<t>NOTE: the association between a link and a fiber&amp;cable object has to be added in the future version.</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 hardware 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-hardware-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-hardware-inventory root.</t>

<t>The proposed YANG data model has been analysed so far to cover the requirements and use cases for Optical Network Hardware 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="tree"><name>Tree Diagrams</name>

<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-hardware-inventory" (<xref target="ni-yang"/>).</t>

<figure title="Network Hardware inventory tree diagram" anchor="fig-ni-tree"><artwork type="ascii-art" name="ietf-network-hardware-inventory.tree"><![CDATA[
module: ietf-network-hardware-inventory
  +--ro network-hardware-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 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 relative-position?   uint8
     +--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 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-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="ref-tree"><name>Relationship between Topology and Network Inventory Tree Diagram</name>

<t><xref target="fig-ref-tree"/> below shows the tree diagram of the YANG data model defined in module "ietf-hw-inventory-ref-topo" (<xref target="ref-yang"/>).</t>

<figure title="Relationship between Topology and Network Inventory Tree Diagram" anchor="fig-ref-tree"><artwork type="ascii-art" name="ietf-hw-inventory-ref-topo.tree"><![CDATA[
module: ietf-hw-inventory-ref-topo

  augment /nw:networks/nw:network/nw:node:
    +--ro inventory-id?   leafref
  augment /nw:networks/nw:network/nw:node/nt:termination-point:
    +--ro inventory-id?   leafref
]]></artwork></figure>

</section>
</section>
<section anchor="yang"><name>YANG Data Models</name>

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

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

  import ietf-yang-types {
    prefix yang;
    reference
      "RFC6991: Common YANG Data Types.";
  }
  
  import iana-hardware {
    prefix ianahw;
    reference
      "https://www.iana.org/assignments/yang-parameters";
  }
  
  import ietf-inet-types {
    prefix inet;
    reference
      "RFC6991: Common YANG Data Types.";
  } 

  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 hardware
    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 2023-03-09 {
    description
      "Initial version";
    reference
      "RFC XXXX: A YANG Data Model for Network Hardware Inventory.";
      //RFC Editor: replace XXXX with actual RFC number, update date
      //information and remove this note
  }
    
  container network-hardware-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
            "The location information of this network element.";
          leaf-list equipment-room-name {
            type leafref {
              path "/nhi:network-hardware-inventory/" +
                   "nhi:equipment-rooms/nhi:equipment-room/nhi: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
      "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.";
    }
  }
  
  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
            "Top level container for the list of racks.";
          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 "/nhi:network-hardware-inventory"
                  + "/nhi:network-elements/nhi:network-element"
                  + "/nhi:uuid";
                }
                description
                  "The reference to the network element containing
                  the chassis component.";
              }
              leaf component-ref {
                type leafref {
                  path "/nhi:network-hardware-inventory"
                  + "/nhi:network-elements/nhi:network-element"
                  + "[nhi:uuid=current()/../ne-ref]/nhi:components"
                  + "/nhi:component/nhi:uuid";
                }
                description
                  "The reference to the chassis component within 
                  the network element and contained by the rack.";
              }
              leaf relative-position {
                type uint8;
                description "A relative position of chassis within
                the rack";
              }
            }
          }
        }
      }
    }
  }
  
  grouping rack-specific-info-grouping {
    description
      "Attributes applicable to racks only.";
    container rack-location {
      description
        "The location information of the rack, which comprises the 
        name of the equipment room, row number, and column number.";
      leaf equipment-room-name {
        type leafref {
          path "/nhi:network-hardware-inventory/nhi:equipment-rooms"
          + "/nhi:equipment-room/nhi: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 height {
      type uint16;
      units millimeter;
      description
        "Rack height.";
    }
    leaf width {
      type uint16;
      units millimeter;
      description
        "Rack width.";
    }
    leaf depth {
      type uint16;
      units millimeter;
      description
        "Rack depth.";
    }
    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
            "A relative location information of this component.
            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 "../nhi:uuid";
          }
          description
            "The list of the identifiers of the child components 
            physically contained within this component.";
        }
        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-references {
          description
              "The top level container for the list of the 
              identifiers of the parents of this component in a 
              hierarchy.";
          list component-reference {
            key index;
            description
              "The list of the identifiers of the parents of this 
              component in a hierarchy.
              
              The index parameter defines the hierarchy: the topmost 
              parent has an index of 0.";
            leaf index {
              type uint8;
              description
                "The index of the parent with respect to the 
                hierarchy.";
            }
            leaf class {
              type leafref {
                path "../../../nhi:class";
              }
              description
                "Class of the hierarchial parent component.";
            }
            leaf uuid {
              type leafref {
                path "../../../nhi:uuid";
              }
              description
                "The identifier of the parent's component in the 
                hierarchy.";
            }
          }
        }

        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
        "This extension differs between different component 
        classes.";
      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 "./nhi: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 "./nhi: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
      "Specific attributes applicable to chassis only.";
  }
  
  grouping slot-specific-info-grouping {
  //To be enriched in the future.
    description
      "Specific attributes applicable to slots only.";
  }
  
  grouping board-specific-info-grouping {
  //To be enriched in the future.
    description
      "Specific attributes applicable to boards only.";
  }
  
  grouping port-specific-info-grouping {
  //To be enriched in the future.
    description
      "Specific attributes applicable to ports only.";
  }
}
]]></sourcecode></figure>

</section>
<section anchor="ref-yang"><name>YANG Data Model for Relationship between Topology and Network Inventory</name>

<figure title="Relationship between Topology and Network Inventory YANG module" anchor="fig-ref-yang"><sourcecode type="yang" markers="true" name="ietf-hw-inventory-ref-topo@2023-03-10.yang"><![CDATA[
module ietf-hw-inventory-ref-topo {
 yang-version 1.1;
 namespace "urn:ietf:params:xml:ns:yang:ietf-hw-inventory-ref-topo";
 prefix hirt;

  import ietf-network {
    prefix nw;
    reference
      "RFC8345: A YANG Data Model for Network Topologies";
  }
  
  import ietf-network-topology {
    prefix nt;
    reference
      "RFC8345: A YANG Data Model for Network Topologies";
  }
  
  import ietf-network-hardware-inventory {
    prefix nhi;
    reference
      "RFC XXXX: A YANG Data Model for Network Hardware Inventory.";
      //RFC Editor: replace XXXX with actual RFC number, update date
      //information and remove this note
  }

 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:   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 model for navigation between hardware
   inventory data module and network topology module.

   The model fully conforms to the Network Management
   Datastore Architecture (NMDA).

   Copyright (c) 2021 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 Simplified 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-03-10 {
    description
      "Initial revision.";
     reference
       "RFC XXXX: A YANG Data Model for Network Hardware Inventory.";
       //RFC Editor: replace XXXX with actual RFC number, update date
       //information and remove this note
  }

  augment "/nw:networks/nw:network/nw:node" {
    description 
      "Information that allows the relationship between the node in 
      the topology and the Network Element (NE) in the network 
      hardware inventory model from which the node is abstracted";
    
    leaf inventory-id {
    type leafref {
      path "/nhi:network-hardware-inventory/nhi:network-elements"
      + "/nhi:network-element/nhi:uuid";
    }
    config false;
    description
      "The identifier of the Network Element (NE) from which this
      node is abstracted";
    }
  }
  
  augment "/nw:networks/nw:network/nw:node/nt:termination-point" {
    description 
      "Information that allows the relationship between the Link 
      Termination Point (LTP) and the port component in the network 
      hardware inventory model from which this LTP is abstracted.";
    
    leaf inventory-id {
    type leafref {
      path "/nhi:network-hardware-inventory/nhi:network-elements"
      + "/nhi:network-element/nhi:components/nhi:component"
      + "/nhi:uuid";
    }
    config false;
    description 
        "The identifier of the port component from which this Link
        Termination Point (LTP) is abstracted";
    }
  }
}
]]></sourcecode></figure>

</section>
</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_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 year="n.d."/>
  </front>
</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>



<reference anchor='RFC6933' target='https://www.rfc-editor.org/info/rfc6933'>
<front>
<title>Entity MIB (Version 4)</title>
<author fullname='A. Bierman' initials='A.' surname='Bierman'><organization/></author>
<author fullname='D. Romascanu' initials='D.' surname='Romascanu'><organization/></author>
<author fullname='J. Quittek' initials='J.' surname='Quittek'><organization/></author>
<author fullname='M. Chandramouli' initials='M.' surname='Chandramouli'><organization/></author>
<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 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' target='https://datatracker.ietf.org/doc/html/draft-ietf-teas-actn-poi-applicability-08'>
   <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='11' month='January' 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-08'/>
   
</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 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>

<texttable title="Comparison between openconfig platform and inventory data models" 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, 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>
    </section>

  </back>

<!-- ##markdown-source:
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
FSZnFysXiHtTJatZeV1Q6/8LP3ozorEAAQA=

-->

</rfc>

