<?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.9 (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-01" 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="July" day="11"/>

    
    <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 of 
  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.</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 hardware inventory information available at PNC 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 PNC South Bound Interface (SBI) towards the network elements rather than at the PNC MPI. 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.</t>

<t>For optical network hardware inventory, the network inventory YANG data model should support the use cases (4a and 4b) and requirements 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 analyzed 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 these diagrams 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, the relationship between the rack and network elements is not 1 to 1 nor 1 to n. The network element cannot be the direct parent node of the rack. So there should be n to m relationship between racks and network elements.
And the chassis in the rack should have some reference information to the component.</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 multiple 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 which attributes from <xref target="RFC8348"/> are required also for network hardware inventory and whether there are attributes not defined in <xref target="RFC8348"/> which are required for network hardware inventory</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 used by development of systems. It could be globally unique easily.</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 maintaining.</t>

<t>Location: location is a common management requirement of operators. This location could be absolute position, e.g. address, or relative position, e.g. port index. Different types of inventory objects 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-from-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 children* [child-ref]
        |  +--ro child-ref    leafref
        +--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>But we refined some attributes in <xref target="RFC8348"/>, based on some integration experience we had.</t>

</section>
<section anchor="refinement-of-rfc8348"><name>Refinement of RFC8348</name>

<section anchor="new-parent-identifiers-reference"><name>New Parent Identifiers' Reference</name>

<t><xref target="RFC8348"/> provided an "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 hierarchal level component, they need to retrieve this parent-ref step by step. To reduce this duplicated work, we tend to provide a list of hierarchical parent components' identifier reference.</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" in this list which starts from 0 is sort by the hierarchical relationship from topmost component 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 define a choice-case structure for this component-specific extension, which is:</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 *-specific-info container is still under discussing, will be enriched 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 quite recognized and we suggest to refine it to 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 attribute mentioned in above section, rack could have some specific attributes, such as attributes about appearance-related attributes and electricity-related attributes.
The height, depth and width are described by the figure below (please imaged that the door of rack face to the user):</t>

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

]]></artwork></figure>

<t>The attributes for rack includes:</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 could be supported by the rack.</t>

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

<t>We consider that some attributes defined in <xref target="RFC8348"/> for components are also applicable for network element. Includes:</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: the attributes of network element are still under discussing.</t>

</section>
</section>
<section anchor="efficiency-issue"><name>Efficiency Issue</name>

<t>During doing the design of integration with OSS, some efficiency issues have been discovered.  More discussion is needed to be done in the future to address this issue.</t>

<t>Considering relational database is widely used by traditional OSS systems and part of PNCs, the inventory objects are probably saved in different tables. If the generic model is adopted, when doing a full synchronization, PNC 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 PNC &amp; OSS/MDSC processing, which may result in efficiency issue in large scale networks.</t>

<t>We also designed a YANG model which defines the inventory objects directly instead of defining with generic components. There still could be some scalability issues when synchronizing full inventory resource in large scale of networks. This scalability issue is caused by the small transmission capability of HTTP protocol. We think that this scalability should be solved on protocol level instead of some specific data model.</t>

<t>In case there are some other special types of inventory objects could be used in other technologies and have not been recognized by us, we would like to provide a generic model. If we define the inventory objects directly and give them fix hierarchical relationships in YANG model, once there is a new type of inventory object needs to be introduced into the model, we need to break down our YANG model and insert the new one, this is incompatible change which is unacceptable by the developer to implement. In comparison, we only need to augment a new component class and extend some specific attributes for this new inventory if we adopt generic model, which is more acceptable. We think this compatible issue is prior to the efficiency issue mentioned above, therefore, we continue to work on generic component model.</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 under 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 to have 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 analyzed 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 networks.</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'>
	 <organization>TIM</organization>
      </author>
      <author fullname='Jean-Francois Bouquier'>
	 <organization>Vodafone</organization>
      </author>
      <author fullname='Italo Busi'>
	 <organization>Huawei</organization>
      </author>
      <author fullname='Daniel King'>
	 <organization>Old Dog Consulting</organization>
      </author>
      <author fullname='Daniele 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 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:
H4sIAAAAAAAAA+197XIbt7Lgf1add8DKVSsr0ZCS43wpcRzZshOdimRfSzm5
qSSVGpIgOdfDGZ6ZoWTF9tY+yv66D3IfZZ9k+wNfA2D4ITs+qVvLSmRyBmg0
Go3uRqPRSJKkNyrHWTE9EstmknzR6zVZk8sjcSx+Pj7/TpykTSrOyrHMxaSs
xLlsrsvqpfg+rcbXaSXFaXEli6asbnq9dDis5NWRKWNeEaTeuBwV6Rwgj6t0
0iQ300+Gi2Q0SueLpOAaSaZrJDdpMU0ODnv1cjjP6jori+ZmAXVPn1w+7WHZ
aVUuF0fi8ePjs+fiJ3gAXRDf4cPeKG3kFIAciboZ97JFdSSaalk39w4Ovjy4
1+vVTVqMf0/zsgCAN7LuLbIj8UtTjvZFXVZNJSc1fLuZ85dROZ8DUvVv0MFl
Myuro54QCfwvBHfn8SwF8oifl/SsrICS3y/Ta5mJSzmaFWVeTjNoBF/KeZrl
0OZyRHW+nVG5PjThwTxtAD3xaFlnGwPNsEp/CFW6wR5n8Ep8tywt1KfLZlnJ
VYBTrDRdlv1MNpNvp/gwAvpCVtMMUJZ52TQO1uflyyx1wdVUsD/kgt8W+L4F
LyvqI/H35GlfPCqX/1xmsnKa+btMi+RplRajMqvbBai5f5TjdAID67b4H3Iy
6Q9V0W+vVIlIH56mQ+jCc1kt//gjK5xOXJ6euQAnWK6/0OW+bWQuARqOAPQl
azywz+pRWonvyuKPNJd/COCVk6ysbV+f9eMvuWmADehmoxYRSwTZn6paYzmG
OoQGF4307R/ZCCaW+KFcyD9WjM4VFevnWMwZm96dEczAKhsuG5wAdxB2ryir
edpkVxJnxOXZ0+Ts8tnF6RGBU0IEngp6Ku73D8QTGIEFTiYWKFTQzinb5TPx
tKyWc3EXqu/RmzFM6SMhYAZ/Qb+BiYBLs2JSchsXJ/eSewe/mwYs/CatprI5
ErOmWdRHg8H19XW/mU8Qfh9aG1SyLpfVSNaDepk1cjBvyjpL7icHg14P4Ttd
fHb+9PfLF8mn9z9v9/H4+am4utc/7H8iXsiJrGQxArk4X+QSUYHqZSGOp5Wk
n12dfraQhZacKMqelstizHXvQsMtMvx9md8ALe4dBLSAkoJRZLRenB6Lq8P+
QZQUMMZFYVokalyDRIaBBjwHy0VepuN6gO0MDr4YMNgEwSbc28T0Nmn3NjG9
TQ77i/Gk10uSRKTDuqnSUdPrXc5g7oI6WBIvjOUkK2QtUlY4Y1Q4c6NwFIJi
phWO0RFc0oxRWfQRsgygLGCIoYYcQ1nRtJqG7xn2FiaQaEoxlGJZw9e0hnJS
DNMaCjQlNAvPxFQWQOnRu2IprmfZaCZGaYHtpcvpnJDbh+fAAZUEFq7oZ9bM
RKNl8k1SL+Qom0D7d2V/2t8X5aKBmZ7veU3tq44wVcdCAhhZYddTMSFZL65k
hQpVlBOPHCWXK0qqoh93kFU3EBAVGAg7i5QjMmpz4Cwt0ilxBRkVNaAsxXE1
msG0GxFid8/PTo73+swu82w8ziVIHrAjmqocL0dIvV7vvJvUc9tChvz0Ut6g
+l6AtMdH0GOQ2SkUrXfFs4sLkTqN19CsMLhamARognOR2DvH74QJyPrmBoHq
sbetAyCwMMQ18JEaNaATvL4BayOtAOC0BJEPUqUgAkEdUIkw52FALIFrggGg
oEgGoyFhPt7MvY7s1m6nsQLJ6TIH+6Vu5BzsF2wB5t04Y6QN/thajHTQIvY5
r0tiRlk3ZnLoIU+RJhbTvoiTzsNsDqoJnmNHiaijKiMOFou0ahAbACKLekkl
EGtNWLDXbmoxk2nezG5gYsg8TxZ5CrILpglC1l3Ciog+k9WhkYLUX4NknpfX
NPUBiK6NXX8p5QJpOHqJaF7P0kYsZjc1Ia+RHEtQnSjFgCMRYcDFolKYZkf5
Eo1tIG0ur1JotC4nDbExdkTzNPHiZatiFF8Yo5nMF3Wrv4RxUV6zQEEGKkU6
IrEC8K5h9GrZMHdRVzKkjxwjMbnyGI0ZZXWLMh/j40m6zIHdYSYBSwFMK8QQ
AayVzRdVeWVRBmxI5qEyJMZMF+kIpwwNHSqcXu+0EK9fPzxNTsi2TBqZ1glo
iCJZlFmSLhY5kHiY4UR7+xYlcLqgSZWNofs8qyo5BZppjsnVEIWqpMGejsol
9MZI+UYcP748F2egJ1ELVJMUUIVhweLI/AtYDEBHy1wOkEUzGO2I0HFFe3oF
RlQ6zCUCf37+2EBDFQJkBoCzZIiaXc9PLc3PTi4eI51RLOXpjaxQDAJtXjx9
/MUn9z+F7oOhSShMS/iDVAAc5+lLKRYljBS2iRRQ+iRtjIAPJTdplpCznBJg
5rFQx3YK6APKH+gJsNiYBhPB1iP4SSVeykUj8gwMYBYVGnZTLkh3MeiyyG9w
zInjUDSj4jQSmRivAplIsLNiDAs2QEqTDh/CqPHg0gIOlfIqVRxoYKB3OkYA
sEQCfoG3Y2wXuHYBBhQYRzcCbBszIi+eXFzigz3mU0SA2MVVGvuKSsxXJLho
Uo5ykPPAaAUITJxqDY8vcwMiCVPhpQShh5RVipx4cFrxyNUjWaQVGPUCcB1J
txl4oQd7VFYgR1pjHedLtiVwgmTFy7r1itlc63EZjh2LeLYByFiiahkPGCmE
FbYRTbtrPe2AVeaw9MV/LdMaCwfUYlHWDVo4V6Bcx0So0+fG0mElko0qYAkr
Z+o9xZDu/O62qlBQkRAG/i3nMmpgOZwDbJHlNU3F/8FT8QuYiqstVqSiI6XV
wBjJgWICR3UKnQfTHTlAzagKVm8oWmiCzPGrFoFIJzamUKhclLB8wLUvVDs1
guvuxaPTvdZ80UMp2TSvBTAXGnZAqwJ5UsMDAdgX35fXOM/3oxLDsfVahJjB
SA4lEFibzSmQWq+AkBZUUUtngrrOUtbs9rS0M6O7zr6nXl2Hk9uBekasUS8X
JNS1NBmlNQzj3fspDcH9IfOS4hamWavrdgX49u0+2WHVWJLOnC7TCtS5xMlQ
y3Sey7puzWglAwYg4AcliBCJiyF6Q+K+VjMMpVGJxPR7YEgNnJXf/MGCdkQC
BHvTwhk7YbuH4/BMUbLbfQftP5I4UrDqAeBle6SVoAspOqTZX5ZjFMqgIwEA
6G5g+2DZ5NRF/NqsjbaxnYoON06WFfEs9RqXYzCdVvTV2DIIVL7CpR2rRdeW
MAufQFqVgpc+6GukprSQEXdPn7fljxI7pTZGbpRJlKIYadgO1F1nU8t/GxM9
k5DrmTNiC2YwxrgLgP0SPRFkRAW+1D76UsXd16+LjNyqb9+iSjsv0ZVQgdUK
JiFwcnttWIeLQ+Yy0Da4lqEGwRKEVQmQmNYuRWh/aOVUz7LFh1tFGr699/Yt
tHrnjriU1TzTSgbGAvrOeAltZ09KtP1JUElsFMcnEHqff/npAdqhyL1oS5e4
VgKtosqhAD9CgB8JMAAyXErxD5by6ocikPplKeE+KODBVph9du/+YRszixfA
aWEGdM2mSyV7sDmNJdBEmgfYdOOQjYV5DWu2IeLiDSNNvAkppKyA2i69eC3z
6ORIvJCwBlCGCyiIBenGEQg2mNeDOi+bgVmsD4YlSI9Bv9/nThrvooL3NEIV
0kFaAYNZw26flnU0y8DaRF5BUdG2d0Ld0l7WPmElSmT8Bpe/tN4jsxLWjSwx
cUJC+zWKLpjAqmtq9QOSewLYjdnuMDMetEBR68WWWZuD/UszC1oko1mIF2Ax
msZhTYJ6R/VKoYLN4BIMBBLaV9dQAPVdfmOIYnAGG4OAPmYMV8NVXdQuNiEu
YKg6qtCwMWg9lKokl2NiSOMHVtU8S2XfWSgrIu4LZBD4uxwm/I2a4k6DSqc2
HxHTPIY/Br1FvpxOScvYRpXrDfolleWLgr89dtgGuoS5tWAM0+0H8DlgqdEq
nAUnFKaukKR64ao2LaZYcuKKCYgEtt3O2Y8Xlzv7/K84f0bfXzz5tx9PXzw5
we8X3x//8IP50lMlLr5/9uMPJ/abrfn42dnZk/MTrgxPRetRb+fs+Ocd9rTs
PHt+efrs/PiHnVBik04rmbLQOZh/DRmFPSU3WGA9evz8v/7P4X0lIu4dHn4J
gkuJ7MPP78MPtNi5NVwxqp/AJTc90OK4rkIfZZ6jQwF3XIA10M82K68LEnRA
bJL5lcStlBTsr3mvdwwW9xxMAPIZwKPFjFRsXEo46gn6R2KFhBDozwagAoq+
cuzTCM1lWig3Hq2Pb+bDMteCBkyUMWNDwjJmUR9offUcjOjsFb6j3ddz3F48
T+eyRvY59ei+Txs8tXEeovJgflVuXNubcvgfaH2ge7JCUxNbkWO1HiaU9cKa
36GrqBxlpPL1ErIneNlZw+weG1UAxOVVpLEMzJgoOevoMZyO0NE3up9vxM9o
oZxRVeF83jj7KfgTqiT0EfqL//FeUJUMLIbZteAviZHzTiutNQ1WKTL1Jm5R
IWJPH4t/h4/QiJGRZarQ9jVbkV4rn3355SG18vpI3AFSJGoYat5OerDzXP9m
b25AakXhnbe9HiLxZIxOVUHmXO95LsEMRrbOUbQQgmbtj6WL5XyI1jRIq2nB
VrLHyAbEvLxSfgcwJ3C87mwZECCIl6kOF38GohXNTVhp6DUG7t2NckQHRGmq
JGdb3+87yzrFwFqCjzNUdkqAAxqCggKA+ZRSop+exqFnfbJvWqXQb56CShDo
5t3vUjtoxivniwfSAtDsYpSZp6nET3pEnIUMTt/vTi+U2EvGco7fxuUcQGqf
fo4aHbea2bhOs5o8Gi1cqrKcA2nAkCL/REHGfZt8SkiziwJXcDVZDOFQwJj/
UE5RUOaw0LYLAGXRQ83mWkot3bpHyYj/4Q0MLVifTpwHl01cuDA7MDjgGpTl
/4IPMOsoyxJYXPaE9/m4Nfc/Dt6/EQ5WMOW2rY+fwUD8+qv35vDonF4IeAU/
ziIV6S29X/Xp+TggGhHU+HkPe+QN9RvVUc+Cos5uDtrpwJs3UUzfvGmXIRKs
KvProAOO6AVIfBwU0kQlZGjjRf8I21sD6v307ddBq8zvrc+vH3dS06P0ADHQ
64IIRzqfTpgdnzcxaIwfdIi/KMSBugrzSJU3Ps7wsUo12krHWHtv3YoeD/qj
5r5udf0NyWO0y0kaBxwB/7O09Yh72/Y2+kRpsq4KjMnWtVpMuO7T6pPYoiIR
ldykazh0VYMsu8nIWSvwteXzIqZcArWChs+p751cqbR9DdzyoYCdarwOrsvP
es3JgDKuvIajoChe4DHgCrpTb1ijw76Szvoe15F6I2d/pf5kGYcIBs2zASYO
UW0f4hYify36rQ1iLfdB52LpIdsoY7AuQOEvAC14hysDvTjB9vriolR4W29u
QfuKcUSxUh3Fst87Vp5WLdwyp18K+gy3bYg6dpPA3YpSnj4zHEDhn8jcatnn
eklG259ownjbK5Nge0Vt6KW+L2dvv+VZPO3cPXCahEVtlUm1S7liL6PVL9yb
Sl0rbpzV5LqvxaQCJT5f5k22yKWPIDRboIWKe4iqNtDkQ+/URDdoBLmkYUFe
lakKBFAr7Bveh2yHv+kF8wqKqb3pmZoQDrWW6NnfprP+ONk1H5E7ujcWo/TW
PnLl5Dcygttr4YZo6O1I3ixeEz/GmwdS7dxpIeO0gfO9ixIKIbfN1c3dqtMK
OaR6gnsxzEvsYQ8pUNKIgmScwSInmZdLmumBqQ/qpDKhBFaB9LSugZfGFk7Q
FuagWVRfsbcfiV+Wy2z8mylkoOBjrcNw3X6ED9xi/fWfECrJSvdx600MG7eM
i1MXWuI2yLmNqBWrHCdKaANWhQTVPLEyGH9FsBR2fLDEQ/s4l+kEnqyo0oL9
0K/SHnY9PXttEN7rNjW76eiRcUsCRvtQewaS9zqGWTd+nThujilZXeh4uYMe
+DmI3hOJvh6a9sd57mi5Z8obSFvt6FBtx48oc2vft2xGDNYRQPJVVuPOL9gT
HN0BK/dTHaJVHZFXVlxD9eV0KmvyP6AAoL6zllRyCmNcwJ7Kb1hLDW901JH2
kKigqb44dYI9pnk5RBcFiPDsn0spZFpn5HM/p8B39I5ywOFsCQYDMF06pg2B
PB2ibg8jc1tRYoCs8hGjv+q7H0+V6tNgVadMjKTagSHs2f4ATI7zDKgi8HhA
baIrt0cItB57sIdEocqhA0Gk5l1c3agnRBhQOSFvzALBHynXzEJH9AQYrcCF
GsyKxbKx2Diw7U4UBbJwIA0pqJa9B6Xmi4aq16z70eGFUokDBH8o2RV1JPJS
+wcpdpSZ0Amz8XxpJq5MDZepbjswrMsc+BdDkUhX7Qu0E0U6HgMNawqGZCv4
KihDqwjc4nkFnc4mZEc1NmogdIUp7MDwCwpr0KEOXL2t3wukoacjVynJzbRk
p5qMyCm3KLKaoxLqpuJoWL+cw34PV5WjefNwPTw9yA87y20u7Dt0+Xplvl6b
ryKgW80jY2en3DoeSTeq45F3ozrY70TTO1Kqg78S3aeWzo/XrMrrhPcrWrgt
QT58cm9VxRHM63kR1O2suDlTrDFONrdOuhgjrv072KE1RG7JgAk6SwZD31kS
DD1vuD2qRwb6I+EP9LYEdzHotLk2N7pWzUf8rDC+Vs3JDsK59aLzcoN60bm5
QT2j7zaut8mgsHV5hwIVjPMAF3hqdReP8VqzwEWNT0Eq5viFqNG4Ms4FUJLt
JTTFaKIOrte5YcjRkYN5SqFG1s9HPj1fGSs/kfEisv7dJ22/171E9flyHTdu
bvl3sZw3hl0cFi1GW3wtcBzA2Ny4s1SVnWU5GEMFdIG+OotB4cpb/Q6f+vOd
i+ihgVJXUZHExSZZNd+gmD4zs66YrLI0Rz2g+xstNp9MkzaNo8Xo2EySjdcU
y+pkUi1dAg/LEohSRFrF45y2JI0/PkqAwZMmm0ufZarsI9H6wOK9OYLHamI+
AmP8mryr5Ayi5ZqzTst8r7kJ9aWSbrSyfLXAU6U4v6/Rfzbum2kPoLWRbWb9
HXx3Lq/Fc/Y029VfvWtFhRdFb1ZKaSF22EWNTLRjUd5Xiw48Y4IxUwaq47vE
CFyY0MrFbX3H4iftSXSP1uhTN9cphSgDw5HbOnM2AXZrDBAqxgoiVJxlU/Rv
6eDBNFcHOUwVDk+iyGPP95hpzGh6QNsLWhfCv7AuwZLjpT7dMV5SiDLF2oA0
w3NuguOXS00qR5aZSEZ1gK7VeSB6jFbvT4Rto8AZlqUC41KHYsQzILBFmhy+
RHnjmCSmkPvprEBGa6RKZ4WWqyqCeEgqWxCIRivE37wKVlLgW/yJhukXXaWM
vI4g2RIOXeTaXK9fuhGyyFcdDGWW0BzxO2SP/06EBjvEr7xTtUP9tXGDxMk8
v+nogHIVH5BTBdfXCm4Lo9a2FDvzy8W8rB3mJz9M2TTwzt1JuqNcYgrFCx2+
eVpMSuUj6/WOR6NSnSYs/XM8rVMH1LTxMewrAUpBcChZHKGr47E7PPREm7ol
pg15bZdMsKkb4Y35CvT5CXUQizcxWptoTGfc+qPtvmu984lOlFmZjWSCJydQ
ly05fJ6DhV2JaI8n0ImKmvwg2mMXi9L5UELlrkWRpsneQ89Te3RXGXN77SAC
Y7jQS9O/BL1TIQjlJq/iQHCHeQ0ENiTj1Wlrek19MkCjjmZ801F583nPOz44
Rz9qwzI7BBVNyibLc8ViuIG5rHGbFRMVwGNgV1lUwBLM4rxppKfdczzgfU7L
8cgcazkhw2NHztwgU3gsdmhZQTbbTozl9xHbBQmhijUy7TwDwy9rEAuySq4y
PnxIJ89VTORVmi9hjpwZ2Hrn/Z+YFwSm/6icFtkf6gBs253NFhee3GvKFlDe
gCdv9L9S9TYRR4pnvW7OLjiiNpPLixLTwzALpWNldPLhRUcIDkswTb3QNR0Y
7LAKnXLAg2gckqhGtbXdIBAAsArzGQDGmAIOieQwECU/bbCBFZ4GIYwN4XOo
AZIcY46n1hN92sktg7GkGIEJrA5LpkgRDgWfSbAZGzofBQtNYphs3MxU5IkT
D0kUwPM4koMexd0FB+Bmc4rOpNgBmiVlSacsqIt0cEBNH/Sd74VSOFzhB0Fd
+mlQdPAm/juIBhp4O3zm9xs/4GjgbQba3x5QCjJzsHwjuko6b/zf/91KMjv9
9VA9QaaEz79tDHPzkn8Z4v8FSw7cCWLmcjCV39A886ry14FfcuD91g9IgnmF
vXDPNx1AfYHTJXFUNC1JSIpSDTvc+u3FFtKqzoptHU2oRbASvEYEKxmKYYSX
s5aWQsuXxKvKEBC1bSNbQp07QWJLV7fylRHi3hIV14iHn/lFqUf++jdelMZx
s6Lz9FVyVeYNKKCHnUU3txfOLLgjtah6lc2Xc6Ee2gWPOp5vNSNFKbJl4IXG
9Xo/UYwYxV+ylvTdXa0V10Prd8JhdlzBFE1F+/H2RLrrsVa7OH1YKa7gCmGd
Eu++ObQV01i+8X2snXs5gZu1s2Tgae0sGXhRV5ZseT5XOD5trcCK7cbZuH1V
2c6SC04rZvGOlNycz9kGbtoyJQwoVhmiYmspPv33ZALGKvpeb8RpXS9lr3fC
ObHGpY7PHHNMD4UaWKctbWo8u7hQ7ghp4WQIp2abmKJAdQCqHPcFLHkoMoGx
4AgLm0QBD/Dg2diWtU4pGzhOgn0F1IAXEa19NWlOm0FDsmqDCB83NZnroaVg
bZUY7Pn5YxU/HUZW8EnGcgjz9kbU0EGa8M7WDk5ojBjiuGcdx20Ce9NxubCJ
YpjEmPAtxxRqxWhWlbDoS3l5gclSkDI1594AXCrKGhZBC7CWuHd1/oRPp1l/
jEGcjvfNh7hwBMzQkzXlQEqqYIKY0X+zr1PE0Fkw9tVQBC8eDaz56HetfMVI
RBBf6PVmx5vzwMGeT3rdxJxFdPKMjtYxYoSPpag+ZOemP0HC68IR4l9yI0MK
6wFZQiCQ0ugJ5zHM5ot01GgGR0r/T8R8QGjDAI+kdjeQ42me3mD3lzmlw/NZ
HZ/lmO1S1KM0t7mC+qQ2SNrzFMKlmzlWSeHHCFwn2IhznF7Tu8FVJnq6dVjA
ahkigZn3VuHR+hRQ1JlJ1EQlXrTsh4CJIy0yOm2p31MnZ4mKfArAI9ePUjP/
cLt1TuF/7kF2zNZms6V8f3n5HAehKUdl3hc/0ZZF8VKvTr1W7GGCusyveIdJ
V1ZbJw7p2mv0Vg6g04LSuvgRiHyuWZ+wWBF11Y7kQ37lQGUn0bFKu3fFLlWS
jY6nhyLbaCeGc1jl2UvZ3o9pyROSMtbDuoZ9sOVppucNHoTudHXT3p1l031R
clIwJEumz3kiIWJ0sJOej+aT0jOnZmdSw7yWZgdrWMn0JQjDayDZsnInSEop
PjBxgtp6v8bMCftaC6DpDEwPiKMZNZqBZpc2uHNZpCPM+0E2luI9nVeuUjkE
rbVF0yetsprczZKzAWgMVRoV1XUrwEiusZuGs/90uYCsn7t9RjajESSt0B5c
6/JW7i3TldaEUI5zRQEz4RZVxskV6biuL66sT4scWvs2Gxj1HN2wWbEk1iNT
AiZUIGPMrEEb4gJ7/Yy4XatkZqZ3ie8PNYWd6dYNG56Wd1PvBcXMwSXtamYM
WbS4pvun5A7WWemYD02YB5ok1yWe+KLclo7V5eYHtmmlRu2TW9SvXL4yyaGk
CWr2EuHVOu2TcikPZdNAj8zGiCM491ubLbUEXsYMO1UJgkZnZPGOvxAnXbOK
UEsbR+JdYxpUVMWlWuuo7Aw0bO5hsjbKHq2U5eM5X2/NFSuCbyx3uIlji2iO
SpNENzzY08qB6XEST/+Q5ZDIHzajmptI7en/T1qGKROPxB2dMgWzR6zIFNFO
1sI5Amy2FXaMYzYRNsnwsU6m0pXj1OEg3n3bKjnatoHY/5KzSqLjXNDaGOwN
Q7A3jMDeMAC7I556bTj17aKpbxFMfYtY6luEUm8USX3rQOrbxlHfNoy6ozfb
VVnr7wyrrPV7xgZzjf8zrLLWDxpWeX9H6pzHWx6pC6r8mUfqREfQ9MYh6xtH
rG8csL4yXv0W4eobe1c3dq5u7Fvd2LV6K8/qxo7Vjf2qG7tV10T0bxzQvyae
36FCPKp/TVC/6CCIW7kzsn+Typ3h/ZtU9rTtdpXDOPDWJxYU7kNwZF2Wjz/y
CiXfiH5/sIrsJiY0T8BCD3Bxj+t01w3CMs1n68DSsOamEaZhzU1DTcOaK2NO
3eJiRY0w+NSraSp3RKF2FTdsw8Nr/qPna2sbgni1V3FJeHSg9VnN5eGBgi0q
h8cMtqkcHD7YonJ4JGGLyh3xXptVDk85bFE5PPvQ+vgHIbzaRnt1s9GanUIH
WHhWovUxByc6qq+OLHULx0NMXcw3jDX1gEaDTkOwq6NP2zAjYaghwDXxqG2I
scBUt0Q8QrUVvaGW+TpqI7ygx13t7/SAt8lMxdnxYKdjTY9VML5DeSBoXW/y
V252lyV5ALBib6X7QLz+W4/ZMtG3ah32D7/Ch5SVdYGBejvLqjjC+kfoApzX
R6/m+VFRHxE3x+HuEAiVhbXI4Bf+5gDzIMMo4WBK44uv+IlRB39TY7SjEpAe
6eQQNqPnJYLqc7tv8Y/bYCtxars5zq66qkGBcRdd94ka2tu87l1IYK9x3kZ7
jS+4mtD1ymqa6r1bLruDt4fGrgzlFmnOjRpV9qfvxE9yeARfv9YX5qF/ia6B
khVdWMRX5k0HdInp4BvVaaj4Q1Y3UPNrvFOxKY/o/be6xjc8mPDh3K3YhLlD
9G/+bPo6clloDIK9MTQEEb0aNAbE3A8awui4BTQGpX0VaAiq6wbQGKz4fZ8h
zO47PmNQvYs+Q3Drbvj8ZkdNScf6V3xDm65KaNiLYuxJWHU6DHkvyLDV17he
6m052ve92eQ2BK64+mY9LsN/H5eLmwo9L6Ds9vA2yXt0ua64xKtyzSVPQIK6
LGqu4ty7hZ58usSy1h7YER0xoRwzBBaTXlAClLHp1Qs5zmregKMrUZQXPMMD
iLSZjU+GWYFXMVF31S2IpRpw/IEx2pwHZaSiMnB3DW8qaDBwbLGs6iUf7uOg
iXpJm6AMQFEvz0YSwyb47gCzjgFEOMrkBQwP7hg8ujiBqUxluT7YRogYoAQ4
X6hEvPf7I00DS8DdWvwgp2kunuNWMe2haBrgti6ffqDiJ2pHRb2/q4UNXVks
pRU0CmvSoXsOp0D//RsdnUTRgo8g6vOalBP6K+iI6pFODJ01tcwnxKAUaZAT
8kXZ4KV2Lba0eeh3Mf/87j7/i9nk8bvOQ4/fKf28+cIgVDFOQW+/2eom8zz+
9JLR7+4zkN2z4593eXx3dUb63c0z0jMQPy29OLwv7iItMCn9Hn/FlPR70Yz0
hnw3YrO09FpiDAaC83b3jyKJukH/LIHwbq5uOu1usnErEJST2we3XKBtrHPY
6xMFJgE4PVNssFgOczWDFBSvHdsC/o8bg8RhKCeSg8+Tw0OtgAMJCDJQ8+Mn
/YP+wU6ncRBeBB5cAN6yG3TF0ISzu2+e8eAh/klycP+DIH7wPhE/BHInB19u
gvi9bRFXG3dbd6B7/9N0JNKNg+Tep6u6caouOdTV+n+RrvCY2ONwHQsBfb2O
mIAAkF919/OSd+kTfZBcw9VxAYFloGu64QyaNpQf09tfTHSInVvG3wJoFzLd
NNF5fPYqYU9g4sTOrBjBY1KSmIXVFrdZKNVpLgzgUQnnCHgmaw1AJ+Gwh/na
x8b2giujWM8ZaqCHjT3CrzVMiowyXuCv9OMI+tCBHymLHIb3aWuHghaYCAF6
e6bdt07zdHyw3Tx7Tta0fcw1kQtWNMmaxVwsPLyxEFLvNmLKEovX1epsbHg/
SIG7WsBCYBzszkDs53LXQtAcqBq3dytyMn+Tgi4tbtD/Isbmvl4LQ9XNs4nE
MsZ8wM8pUKc0t1ABIDp3yeE2KshXpe0FHU+8hI+okAVi0snioomCZdEX7uQA
ZKCti4ApxNiCoOuuooPnnkfddAzFTgrW5CvS3e7jSDherElODLhxY2aypaom
cU0sBFLn6bWl1DhqEC4b+bzTpg7+aUmHTmmySjx4R27i9z/VpuVQ4pqEva9X
T6VLlUO4LVd1+ozOBoU6L+9Fp722kNH+bYmRDgwUDl0tklnWvoPMQUIJ7C4B
7JRzKWR2PF18O9FDBMk4TsdjWKS5jTNbJoR7ZKO0DV7xq9rZ8N8JWH2A/bkz
KLKjQGviQ09xDXbEx8F6nJANyhJIPAT+VbvC2/bPzu4DzHN9dVJbyVAEdsWW
NEbwq/yReFrCB6HuyylMzGKKNUzksapHa1x1tZgPwWvaGwinM2897oABbzlW
fZ1vCtp91rDIW2+K+3O8o4mVczzCVSTm3K2c26hHnE98bbMNPjNuSWNpMigz
5c+fRKW8uzP0vnDRMLfFxd1oel+4mHvlt8RFbz1tofroHgKlgVTSlOUkJcdT
ZVT1+ZOu1mhZGrHVWvs83S3rVa1t1bmDraOTzhbZ+6I3e+s4b4RNlaNobu9R
c6a2WpcTbfrsW7FJK5QBo3Ig+HkrHChOtgn3bAylAkavx1jfzIpyjJw8cRZ0
gzveGw8SUO3ICPgvOjJO7Mht0MiKMSXRYsJZhOhsCd9nScBQmHnLqA4R2LWw
2t7K6RL0VoV7bb2bjdOtVyJ6/T1YOIEKfT8GDrFF3LCJscUKbAXnqEor5zpD
J6+0k5laDRjFVbchRPKjp3xxmzoO2Uo9Mym96m0aueRwlLsdUr5w5d2NORwh
OtnuGWeRkV7ZhjfijJ4aZ1ywtnrX9+2yTUfclKUgmrUmjulhEHwZ2qLY4Z1Y
QKaP60oieGTQrWlC8LH1ECK7BrjxALN1VjR+1ljS/hJpJwbj4zYAVRYfISOE
SAfm9FraKOq0UjRGFnl6uGAwYzAa5y4hm8ctxC/AjqjcDoj9ixH7F03sjioP
RssKo9vu7mFsFDPMbwjH2vGrWrOXaH+AQQ2GSM+CrjENTsPTMWi9A+fmfVg7
1q2fsXXS6rXNCumy7eqmLbEjy/AO/R2V2MTAa1bd3ey73Wq7xUeKf9Yvsh1a
x9xSal0d2gRmVZ3VKtGKXVhb+G9bhLCnF4L+87GCDayUU+vJJe5Sm2LKOInh
2LIy9DVmG2DbOjPx3hBezG5q2qEwjOXc4qa64mPMmISIusa2c1jDs7U9TDu8
1XyN+RRTFtglj7ILoqsMPuoRaevwM9PWssB8vvMsz2HZ18hq3bojMofcJjnp
z4dskXO+fcgWnYMqm7SLRTdYzW2ZpsdfRrVkbcQDtf36ybh6nLwKoQR2Uvu8
0/Ip0oixM7Wue/dFk5eTnsxHP/PQv3zV5PJf+1X712lhzoFSMgmK21O92W+v
tpQzAESqb/frI9n2wnhQaTBHiqPAptgF4+jB1wUoCEka8ptfBtWDr6vfKab9
m99+GdSzB1/XM/Xbrw2vf6cCv5simO3nt99+gTc5PM9XVcypYt6uOFg8+Hqh
H/3f//2fv/2265EyrkVZd1DqgnConKMYvqXKOXUoAvPIOFcJTpcPedUwkzwf
Z20VQ8eB09xOPp1morXjR58uMz3Yu1ft3T42NErAJFgEZvk4Qs8Oq58NJzS4
Y1bzhiQkkULtduTO5i2Cyur0/MZja88Y9pY/tlw3I7XP1cQ4CpW73/+KcnXs
HAAri3uH9z+//8Unn93//HZU6PRErGKFz7785JMj8YT3js9OH4m7/1BBLff3
RBJbT9AHuvpc0ZJvH3gh8+dlvda3Epwgej+bZrHTRn+h/bLYenCL/bLuvr8N
CKEOT73Xzvur7pW939DH8Sd135wA+wuNPjns9JcPR4+IcdY5727boG+b2Qbi
XkBS0ls6/ey9BSqzknMxtN54wE2WsKrJ7LTuto5+WJciOFwAOjOUjuUw1zDw
Wb4QAh07wXUGZ2JrygXmLffxcPK1hCAOEr7usMOryS13+dnoaGHECbXW47Ri
tDs9f6EV5WCygcfPPZeI3jSE9748aLfoT0yCvEN33qc/cJverPXVrQwRMB3e
btlyi3CBTpN25QZtANUD4xiAHOANVp+3PWunoQrFv5tNPCjqbte9D2pTaSP8
hbxatXiJh1O8v3FbF1rxHpYi706rpwrJNbSKh3u8P1qtC/34S9DqQiG5jlYm
LuFPodSKAIXbSYIWRA+EDgb5C0kAT9O740MdOV92bVJ3BAvdfmzWRhAZL7gd
Co88K8alBZGaYgQ9CNuMjR0NN76ZPjaDoc1haVP0YRa7lCzfqBtl115vg0eg
XMmKv13pwWeg/Pp2zuxShDRnbqOjS3OZ4obrZJmLdF4W07rxbT3/kkxiaqQX
kxMw3tWjvht2/DQyfg61nUAoA91n8WCUOXPoywJPUqldR44Q3+eMyPpUlPOh
uHB1fQ9Tu8m8fRv8vMO8cWbK2WR63r1B1h1vhp/3I8ZWxZ75DB4MQHxmeZPJ
g7I6Oq0zJC2QZivnWDd32e52s5XpVBd/b8JWhpEC/vqz+KpTHpNbdB2f6ewd
785kTt9TumIowX1+Tphd06kMdCGQC99ynEclvaPiymuvyLE+7GEy//LKFs9+
zNMFDwJ1jYfIq+7Q5xixOj0hkvLqHHj4gm55Kjzo/mDq9Mh4Fpmvr5KYuTir
55zoFU/I8AFKldh8RJep+to9+4MPMENdoA2stvHcRV5eoyfXJGfV3QnFdtgX
NQk5t7j2yfPFVQ6K/lIDtMqyqVXydlGPSu2ud07G/ilyUGG9ij85QUyEO1Vq
mO3Z04R76ny0eHNH2XiOcxFoCJ1flxLAg46VdIMxncal7NS4U7qr9zdZ3vZR
AHlgrJBQPq7aHlcSu021RBVuxYlBqGt9iLMtjgy0/hSPheXutZwBNnpzQVag
gqEEpw5Q+wlmg9Gfp9EG992e0HnG3W4PUSVB1xcc8WiJ8qew2Wn99MWP64zS
dky5YbMVceXrOG5NoDkfmRr/CYspz9Q4ASzWboIBatFtH056tPUsM7yt+TQS
Msu3532I1aVLkB/BtO6gRvvky7ow0tWhYuvARGIZ7CE9fYtBRpziXmRAly2g
+dIKdbBSCwWZBqNPvYJIUlcZrbo6VtcKETdrpu8RlWvp3GVgk5i3b4PVR3Wd
pYEGcu1ejGmzl/NVoFipDq+xHTnYqX2B2stHbqI66IZapxeed3ebsDoag0hg
MN21saMy2IkHYlftp6uiuy57ORsZsXRenTuIIja13F0RNb/8K6wwgQOlCmnX
173AJZ03rZjrY8jFQqf9SElNJYPZJnTShTsoFWYo+1BkwpbRHqiXw4S/d9Ar
RHELYqk0KxFK6d0Dh1hcuINSkdRrH4pU1HQnfSKIbUEgigLajDxYtIM4YR65
D0Ubwr+LNCFam1BmMLh8Jh49EccnJ09OjjhYaiSzK+0y7FJDK+c10wNAl/5t
zI5kDfSUUVOh1AwRWDFRPkDrq9jwAzS/Yqj/jNbfBnkS6aqCzjyJTs6nnR7n
08KUXMk8rV6Chn2wg6uRHeG8WZVD8Vub6IeuSNihBIociKVvpPBvlhHi16+P
x5QaQtnDuuSoVfIbBHUhR2CKroFS60IRAKfH58crK1OBoCJeQzqkW6aBsuyk
kuMHO7TA4U4ej9AplMvxlPOk8zWhbrKz1j0orYuhYAVGtwC1Krx+/fA0OaFE
Xkkj0zqBxUORLMosad3woa6mnKVXLbcK52GbpguVocm5RgQbrLLpVKo1F52x
Q3xbCKZ0Io2PvXF45csqnePlTlD2/wHl0IJGAMYAAA==

-->

</rfc>

