<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.43 (Ruby 3.2.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-ivy-network-inventory-yang-19" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.1 -->
  <front>
    <title abbrev="Network Inventory YANG">A Base YANG Data Model for Network Inventory</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-ivy-network-inventory-yang-19"/>
    <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>s.belotti.ietf@gmail.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>FiberCop</organization>
      <address>
        <email>fabio.peruzzini@fibercop.com</email>
      </address>
    </author>
    <author initials="P." surname="Bedard" fullname="Phil Bedard">
      <organization>Cisco</organization>
      <address>
        <email>phbedard@cisco.com</email>
      </address>
    </author>
    <date year="2026" month="September" day="17"/>
    <area>Operations and Management</area>
    <workgroup>IVY Working Group</workgroup>
    <keyword>next generation</keyword>
    <keyword>unicorn</keyword>
    <keyword>sparkling distributed ledger</keyword>
    <abstract>
      <?line 112?>

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

<section anchor="intro">
      <name>Introduction</name>
      <t>This document defines a base YANG data model for reporting network inventory
that is application- and technology-agnostic.  The
base data model can be augmented to describe application- and technology-specific information.
Please note that the usage of term "network inventory", in the context of this document, is to indicate that it is
describing "network-wide" scope inventory information.</t>
      <t>Network inventory is a foundation for network management in all types
of networks. Network operators need to keep a record of what equipment
is planned and installed in their networks (including a variety of
information such as product name, vendor, product series, embedded
software, and hardware/software versions). Network inventories may
be constructed from management system data to represent the expected
devices present in the network, and also be used to audit and catalog
what devices are discovered in the network, and to expose that
information in a consistent way.</t>
      <t>Network inventory management is a critical component for ensuring the infrastructure remains up-to-date (e.g., identifying assets that need to be upgraded or decommissioned), stays healthy (e.g., auditing to identify faulty elements), and is maintained to meet strict performance objectives.
Also, network inventory management allows operators to keep track of which devices are deployed in their networks, including relevant embedded software and hardware versions.</t>
      <t>Exposing standard interfaces to retrieve information relating to network element components as maintained in an inventory provides key enablers for many applications. For example, <xref target="I-D.ietf-teas-actn-poi-applicability"/> identifies a gap relating to the lack of YANG data models that could be used at Abstraction and Control of TE Networks (ACTN) Multi-Domain Service Coordinator-Provisioning Network Controller Interface (MPI) level to report whole or partial network hardware inventory information available at domain controller level towards
upper layer systems (e.g., Multi-Domain Service Coordinator (MDSC) or Operations Support Systems (OSS) layers).</t>
      <t><xref target="RFC8348"/> defines a YANG data model for the management of the hardware on a single server and therefore it is more applicable to the domain controller towards the network elements rather than at the northbound interface of a network controller (e.g., toward an application or another hierarchical network controller). However, the YANG data model defined in <xref target="RFC8348"/> has been used as a reference for defining the YANG network inventory data model presented in this document.</t>
      <t>Per the definition of <xref target="RFC8309"/> and <xref target="RFC8969"/>, the YANG data model defined in <xref target="RFC8348"/> is a device model while the YANG data model defined in this document is a network model.</t>
      <t>As outlined in <xref target="operational"/>, the base network inventory model provides a read-only perspective of the installed network inventory data the controller is aware of. Therefore, other inventory data (e.g., inactive assets, warehouse spares, or planned assets) are outside the scope of this model.</t>
      <t>The distinction between a temporarily unreachable network element and one that has been removed from the network is outside the scope of this document and depends on the discovery mechanism used by the controller.</t>
      <t>As outlined in <xref target="overview"/>, the base inventory YANG data model defined in this document supports only physical network elements but generalizes the network element definition to allow supporting other types of network elements through proper augmentations.</t>
      <t>This document defines one YANG module "ietf-network-inventory" in <xref target="ni-yang"/>.</t>
      <t>This base data model is application- and technology-agnostic (that is, valid for IP/MPLS, optical, and
microwave networks as well as optical local loops, access networks, core networks, data centers, etc.) and can be augmented to
include required application- and technology-specific inventory details together with specific hardware or software component's attributes.</t>
      <t>The YANG data model defined in the document is scoped to cover the common use cases for Inventory but at network-wide level, covering both hardware and base software information.</t>
      <t>The YANG data model defined in this document conforms to the Network Management Datastore Architecture <xref target="RFC8342"/>.</t>
      <section anchor="editorial-note-to-be-removed-by-rfc-editor">
        <name>Editorial Note (To be removed by RFC Editor)</name>
        <ul empty="true">
          <li>
            <t>Note to the RFC Editor: This section is to be removed prior to publication.</t>
          </li>
        </ul>
        <t>This document contains placeholder values that need to be replaced
with finalized values at the time of publication.  This note
summarizes all of the substitutions that are needed.</t>
        <t>Please apply the following replacements:</t>
        <ul spacing="normal">
          <li>
            <t>XXXX --&gt; the assigned RFC number for this I-D</t>
          </li>
          <li>
            <t>2026-06-24 --&gt; the actual date of the publication of this document</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="terminology-and-notations">
      <name>Terminology and Notations</name>
      <section anchor="requirements-notations">
        <name>Requirements Notations</name>
        <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL
NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED",
"MAY", and "OPTIONAL" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.
<?line -6?>
        </t>
      </section>
      <section anchor="terminology">
        <name>Terminology</name>
        <t>The following terms are defined in <xref target="RFC7950"/> and are not redefined here:</t>
        <ul spacing="normal">
          <li>
            <t>server</t>
          </li>
          <li>
            <t>augment</t>
          </li>
          <li>
            <t>data model</t>
          </li>
          <li>
            <t>data node</t>
          </li>
        </ul>
        <t>The following terms are defined in <xref target="RFC6241"/> and are not redefined here:</t>
        <ul spacing="normal">
          <li>
            <t>state data</t>
          </li>
        </ul>
        <t>The following terms are defined in <xref target="RFC8453"/> and are not redefined here:</t>
        <ul spacing="normal">
          <li>
            <t>Abstraction and Control of TE Networks (ACTN)</t>
          </li>
          <li>
            <t>Multi-Domain Service Coordinator (MDSC)</t>
          </li>
          <li>
            <t>Provisioning Network Controller (PNC)</t>
          </li>
          <li>
            <t>MDSC-PNC Interface (MPI)</t>
          </li>
        </ul>
        <t>The following terms are defined in the description statements of the corresponding YANG identities, defined in <xref target="IANA_HW_YANG"/>, and are not redefined here:</t>
        <ul spacing="normal">
          <li>
            <t>backplane</t>
          </li>
          <li>
            <t>battery</t>
          </li>
          <li>
            <t>cpu</t>
          </li>
          <li>
            <t>fan</t>
          </li>
          <li>
            <t>module</t>
          </li>
          <li>
            <t>power supply</t>
          </li>
          <li>
            <t>sensor</t>
          </li>
          <li>
            <t>stack</t>
          </li>
          <li>
            <t>storage device</t>
          </li>
        </ul>
        <t>Also, the document makes use of the following terms:</t>
        <dl>
          <dt>Chassis:</dt>
          <dd>
            <t>A field replaceable equipment with a particular structural format and dimensions.
A chassis can, but does not need to, include spaces (called slots) to take cards.</t>
          </dd>
          <dt/>
          <dd>
            <t>Elsewhere, a chassis can be called shelf, sub-rack, stand-alone unit, etc.</t>
          </dd>
          <dt>Port:</dt>
          <dd>
            <t>A component where networking traffic can be received and/or transmitted, e.g., by attaching networking cables.</t>
          </dd>
          <dt/>
          <dd>
            <t>In case of pluggable ports, the port may be empty when no pluggable module is plugged in.</t>
          </dd>
          <dt>Network Inventory:</dt>
          <dd>
            <t>A collection of data for network elements and their components with network-wide scope, managed by a specific management system.</t>
          </dd>
          <dt>Physical Network Element:</dt>
          <dd>
            <t>An implementation or application specific group of components (e.g., hardware components).</t>
          </dd>
          <dt>Network Element:</dt>
          <dd>
            <t>The generalization of the physical network element definition.</t>
          </dd>
          <dt>Hardware Component:</dt>
          <dd>
            <t>A general definition of category of components as defined in <xref target="RFC8348"/> and <xref target="IANA_HW_YANG"/> (e.g., backplane, battery, container, central processing unit (CPU), chassis, fan, module, port, power supply, sensor, stack, and storage device components).</t>
          </dd>
          <dt/>
          <dd>
            <t>The list of hardware components can be extended in future versions of <xref target="IANA_ENTITY_MIB"/> (and, consequently, of (<xref target="IANA_HW_YANG"/>).</t>
          </dd>
          <dt>Component:</dt>
          <dd>
            <t>A further extension of the hardware component definition to include other inventory objects which can be managed, from an inventory perspective, in the same way as hardware components.</t>
          </dd>
          <dt>Card:</dt>
          <dd>
            <t>Pluggable equipment with a particular structural format and dimensions which can be inserted into one or more slots (or sub-slots). A card can have spaces (called sub-slots) to take other cards.</t>
          </dd>
          <dt/>
          <dd>
            <t>Elsewhere, a card can be called board, module, circuit pack, etc..</t>
          </dd>
          <dt>Slot:</dt>
          <dd>
            <t>A space in a chassis that can be equipped with one card, which may be chosen from a limited range of types of cards. A slot can be subdivided into smaller spaces that can also be part of a Card (called sub-slots).</t>
          </dd>
          <dt>Container:</dt>
          <dd>
            <t>A hardware component class that is capable of containing one or more removable physical entities (e.g., a slot in a chassis is containing a board).</t>
          </dd>
        </dl>
      </section>
      <section anchor="tree-diagrams">
        <name>Tree Diagrams</name>
        <t>The meanings of the symbols in the YANG tree diagrams are defined in <xref target="RFC8340"/>.</t>
      </section>
      <section anchor="yang-prefixes">
        <name>YANG Prefixes</name>
        <t><xref target="tab-prefixes"/> list the prefixes of the modules that are used in this document.</t>
        <table anchor="tab-prefixes">
          <name>Prefixes and corresponding YANG modules</name>
          <thead>
            <tr>
              <th align="left">Prefix</th>
              <th align="left">YANG Module</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">inet</td>
              <td align="left">ietf-inet-types</td>
              <td align="left">
                <xref section="4" sectionFormat="of" target="RFC9911"/></td>
            </tr>
            <tr>
              <td align="left">yang</td>
              <td align="left">ietf-yang-types</td>
              <td align="left">
                <xref section="3" sectionFormat="of" target="RFC9911"/></td>
            </tr>
            <tr>
              <td align="left">ianahw</td>
              <td align="left">iana-hardware</td>
              <td align="left">
                <xref target="IANA_HW_YANG"/></td>
            </tr>
            <tr>
              <td align="left">nwi</td>
              <td align="left">ietf-network-inventory</td>
              <td align="left">RFC XXXX</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="artwork-folding">
        <name>Artwork folding</name>
        <t>This document uses artwork folding <xref target="RFC8792"/> for better formatting.</t>
      </section>
    </section>
    <section anchor="overview">
      <name>YANG Data Model for Network Inventory Overview</name>
      <t>The base network inventory model, defined in this document, provides a list of network elements and of network element components.</t>
      <t>The network-inventory top level container has been defined to support reporting other types of network inventory objects, besides the network elements and network element components.</t>
      <t>These additional types of network inventory objects can be defined, together with the associated YANG data model and the rationale for managing them as part of the network inventory, in other documents providing application- and technology-specific companion augmentation data models, such as
<xref target="I-D.ietf-ivy-network-inventory-location"/>.</t>
      <t>The network element definition is generalized to support physical
network elements and other types of components' groups that can be managed as physical network elements from an
inventory perspective.</t>
      <t>Physical network elements are usually devices such as hosts, gateways, terminal servers, and the like, which have management agents responsible for performing the network management functions requested by the network management stations (<xref target="RFC1157"/>).</t>
      <t>The "ne-type" is defined as a YANG identity to describe the type of the network element. This document defines only the "physical-network-element" identity.</t>
      <t>Other types of network elements can be defined in other documents, together with the associated YANG identity and the rationale for managing them as network elements from an inventory perspective.</t>
      <t>The component definition is also generalized to support any types of
component inventory objects that can be managed as hardware components from an inventory perspective.</t>
      <t>The data model for components defined in this document uses a list of components within each network element.</t>
      <t>Different types of components can be distinguished by the class of component. The component "class" is defined as a union between the hardware class identity, defined in "iana-hardware", and the "non-hardware" identity, defined in this document.</t>
      <t>Other types of components can be defined in other documents, together with the associated YANG identity and the rationale for managing them as components from an inventory perspective.</t>
      <t>The identity definition of additional types of "ne-type" and "non-
hardware" identity of component are outside the scope of this
document and could be defined in application- and technology-specific companion augmentation data models, such as
<xref target="I-D.ietf-ivy-network-inventory-software"/>.</t>
      <t>In <xref target="RFC8348"/>, rack, chassis, slot, sub-slot, board and port are defined as components of network elements with generic attributes.</t>
      <t>While <xref target="RFC8348"/> is used to manage the hardware of a single server (e.g., a network element), the Network Inventory YANG data model is used to retrieve the base inventory information that a controller discovers from all the network elements with network-wide scope 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 inventory model when the controller uses the YANG data model defined in <xref target="RFC8348"/> to retrieve the hardware  from the network elements under its control.</t>
      <section anchor="common-attributes">
        <name>Common attributes for inventory object</name>
        <t>For all the inventory objects, there are some common attributes, including:</t>
        <dl>
          <dt>uuid:</dt>
          <dd>
            <t>The Universally Unique Identifier (UUID) of the inventory object, assigned by the server. Such identifiers are widely implemented with systems and guaranteed to be globally unique.</t>
          </dd>
          <dt>name:</dt>
          <dd>
            <t>A human-interpretable label of the inventory object, provided by a network operator or by the server. It could also be present on a Graphical User Interface (GUI).</t>
          </dd>
          <dt>alias:</dt>
          <dd>
            <t>A human-interpretable label of the inventory object, provided by a network operator. It could also be present on a GUI instead as well as the name.</t>
          </dd>
          <dt>description:</dt>
          <dd>
            <t>A human-interpretable description of the inventory object, provided by a network operator or by the server. The description provides more detailed information to prompt users when performing maintenance operations etc.</t>
          </dd>
        </dl>
        <section anchor="common-attributes-for-network-elements-and-components">
          <name>Common attributes for network elements and components</name>
          <t>To be consistent with the component definition, the following attributes defined in <xref target="RFC8348"/> for components are reused for network elements:</t>
          <dl>
            <dt>mfg-name:</dt>
            <dd>
              <t>The name of the manufacturer of the entity (component or network element).</t>
            </dd>
            <dt>product-name:</dt>
            <dd>
              <t>The vendor-specific and human-interpretable string describing the entity (component or network element) type.</t>
            </dd>
            <dt/>
            <dd>
              <t>It is expected that vendors assign unique product names to different entities within the scope of the vendor.</t>
            </dd>
          </dl>
          <t>Other software-related attributes are defined in <xref target="sw-inventory"/> and applicable to network elements and components.</t>
        </section>
      </section>
      <section anchor="network-element">
        <name>Network Element</name>
        <t>In addition to the common attributes defined for network elements and components in <xref target="common-attributes"/>, the following attributes are defined for the network elements:</t>
        <dl>
          <dt>ne-id:</dt>
          <dd>
            <t>The identifier that uniquely identifies the network element (NE) within the network, assigned by the server since the network elements cannot guarantee that their local  identifier is unique within the network.</t>
          </dd>
          <dt/>
          <dd>
            <t>The ne-id should be assigned such that the same network element will always be identified through the same identifier, even if the network elements get disconnected from the network controller. Mechanisms to ensure this (e.g., checking the mfg-name, product-name, management IP address, physical location) are implementation specific and outside the scope of standardization.</t>
          </dd>
          <dt>ne-type:</dt>
          <dd>
            <t>The type of network element (e.g., physical network element). See <xref target="overview"/> for the definition of NE types.</t>
          </dd>
          <dt>product-rev:</dt>
          <dd>
            <t>A vendor-specific product revision string for the network-element.</t>
          </dd>
        </dl>
      </section>
      <section anchor="ne-component">
        <name>Components</name>
        <t>The YANG data model for network inventory mainly follows the same approach as <xref target="RFC8348"/> and reports the network hardware inventory as a list of components with different types (e.g., chassis, module, and port).</t>
        <t>In addition to the common attributes defined for network elements and components in <xref target="common-attributes"/>, the following attributes are defined for the components:</t>
        <dl>
          <dt>component-id:</dt>
          <dd>
            <t>The identifier that uniquely identifies the component within the NE. It can be assigned by the NE or by the server.</t>
          </dd>
          <dt>class:</dt>
          <dd>
            <t>The type of component (e.g., chassis, module, port). See <xref target="overview"/> for the definition of component types.</t>
          </dd>
          <dt>hardware-rev:</dt>
          <dd>
            <t>The vendor-specific hardware revision string for the component.</t>
          </dd>
          <dt/>
          <dd>
            <t>The preferred value is the hardware revision identifier actually printed on the component itself (if present).</t>
          </dd>
          <dt>mfg-date:</dt>
          <dd>
            <t>The date of manufacturing of the component.</t>
          </dd>
          <dt>part-number:</dt>
          <dd>
            <t>The vendor-specific part number of the component type.</t>
          </dd>
          <dt/>
          <dd>
            <t>It is expected that vendors assign unique part numbers to different component types within the scope of the vendor.</t>
          </dd>
          <dt/>
          <dd>
            <ul empty="true">
              <li>
                <t>Although the part number is often an alphanumeric string and not a number, this document uses this term since it is widely used and well known in the industry.</t>
              </li>
            </ul>
          </dd>
          <dt>serial-number:</dt>
          <dd>
            <t>The vendor-specific serial number of the component instance.</t>
          </dd>
          <dt/>
          <dd>
            <t>It is expected that vendors assign unique serial numbers to different component instances at least within the scope of the part-number.</t>
          </dd>
          <dt/>
          <dd>
            <ul empty="true">
              <li>
                <t>Although the serial number is often an alphanumeric string and not a number, this document uses this term since it is widely used and well known in the industry.</t>
              </li>
            </ul>
          </dd>
          <dt>asset-id:</dt>
          <dd>
            <t>An asset tracking identifier for the component, provided by a network operator.</t>
          </dd>
          <dt>is-fru:</dt>
          <dd>
            <t>Indicates whether or not a component is considered a 'field-replaceable unit' by the vendor.</t>
          </dd>
        </dl>
        <t>For state data like "admin-state", "oper-state", and so on, this document considers that they are related to device hardware management, not network inventory. Therefore, they are outside of the scope of this document. Same for the sensor-data, they should be defined in some other performance monitoring data models instead of the inventory data model.</t>
        <section anchor="hardware-components">
          <name>Hardware Components</name>
          <t>Other models (e.g., <xref target="TMF_SD2-20"/>) classify the hardware components 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. This model, likewise <xref target="RFC8348"/>, does not follow this classification and manages all the hardware components without distinguishing between holder and equipment groups.</t>
          <t>See <xref target="port-examples"/>, <xref target="multi-chassis-examples"/>, and <xref target="non-modular-examples"/> for concrete hardware component examples.</t>
          <t><xref target="fig-hw-inventory-object-relationship"/> describes the relationship between typical inventory objects in a physical network element.</t>
          <figure anchor="fig-hw-inventory-object-relationship">
            <name>Relationship between typical inventory objects in physical network elements</name>
            <artset>
              <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="512" width="392" viewBox="0 0 392 512" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                  <path d="M 8,352 L 8,368" fill="none" stroke="black"/>
                  <path d="M 40,336 L 40,384" fill="none" stroke="black"/>
                  <path d="M 96,296 L 96,304" fill="none" stroke="black"/>
                  <path d="M 104,296 L 104,304" fill="none" stroke="black"/>
                  <path d="M 152,32 L 152,64" fill="none" stroke="black"/>
                  <path d="M 160,336 L 160,384" fill="none" stroke="black"/>
                  <path d="M 168,208 L 168,256" fill="none" stroke="black"/>
                  <path d="M 216,72 L 216,176" fill="none" stroke="black"/>
                  <path d="M 216,264 L 216,296" fill="none" stroke="black"/>
                  <path d="M 224,72 L 224,176" fill="none" stroke="black"/>
                  <path d="M 224,264 L 224,296" fill="none" stroke="black"/>
                  <path d="M 280,208 L 280,256" fill="none" stroke="black"/>
                  <path d="M 288,336 L 288,384" fill="none" stroke="black"/>
                  <path d="M 288,448 L 288,480" fill="none" stroke="black"/>
                  <path d="M 296,32 L 296,64" fill="none" stroke="black"/>
                  <path d="M 312,224 L 312,240" fill="none" stroke="black"/>
                  <path d="M 336,296 L 336,304" fill="none" stroke="black"/>
                  <path d="M 336,392 L 336,416" fill="none" stroke="black"/>
                  <path d="M 344,296 L 344,304" fill="none" stroke="black"/>
                  <path d="M 344,392 L 344,416" fill="none" stroke="black"/>
                  <path d="M 384,336 L 384,384" fill="none" stroke="black"/>
                  <path d="M 384,448 L 384,480" fill="none" stroke="black"/>
                  <path d="M 152,32 L 296,32" fill="none" stroke="black"/>
                  <path d="M 152,64 L 296,64" fill="none" stroke="black"/>
                  <path d="M 168,208 L 280,208" fill="none" stroke="black"/>
                  <path d="M 288,224 L 312,224" fill="none" stroke="black"/>
                  <path d="M 288,240 L 304,240" fill="none" stroke="black"/>
                  <path d="M 168,256 L 280,256" fill="none" stroke="black"/>
                  <path d="M 112,304 L 248,304" fill="none" stroke="black"/>
                  <path d="M 264,304 L 328,304" fill="none" stroke="black"/>
                  <path d="M 40,336 L 160,336" fill="none" stroke="black"/>
                  <path d="M 288,336 L 384,336" fill="none" stroke="black"/>
                  <path d="M 8,352 L 32,352" fill="none" stroke="black"/>
                  <path d="M 16,368 L 32,368" fill="none" stroke="black"/>
                  <path d="M 40,384 L 160,384" fill="none" stroke="black"/>
                  <path d="M 288,384 L 384,384" fill="none" stroke="black"/>
                  <path d="M 288,448 L 384,448" fill="none" stroke="black"/>
                  <path d="M 288,480 L 384,480" fill="none" stroke="black"/>
                  <path d="M 92,296 L 140,296" fill="none" stroke="black"/>
                  <path d="M 164,296 L 216,296" fill="none" stroke="black"/>
                  <path d="M 224,296 L 268,296" fill="none" stroke="black"/>
                  <path d="M 292,296 L 348,296" fill="none" stroke="black"/>
                  <polygon class="arrowhead" points="296,240 284,234.4 284,245.6" fill="black" transform="rotate(180,288,240)"/>
                  <polygon class="arrowhead" points="40,368 28,362.4 28,373.6" fill="black" transform="rotate(0,32,368)"/>
                  <g class="text">
                    <text x="192" y="52">network</text>
                    <text x="256" y="52">element</text>
                    <text x="240" y="132">1:M</text>
                    <text x="220" y="196">\/</text>
                    <text x="224" y="228">chassis</text>
                    <text x="152" y="292">1:N</text>
                    <text x="280" y="292">1:M</text>
                    <text x="100" y="324">\/</text>
                    <text x="340" y="324">\/</text>
                    <text x="100" y="356">slot</text>
                    <text x="336" y="356">board</text>
                    <text x="96" y="372">/sub-slot</text>
                    <text x="360" y="420">1:N</text>
                    <text x="340" y="436">\/</text>
                    <text x="340" y="468">port</text>
                  </g>
                </svg>
              </artwork>
              <artwork type="ascii-art"><![CDATA[
                            +-----------------+
                            | network element |
                            +-----------------+
                                    ||
                                    ||
                                    ||
                                    ||1:M
                                    ||
                                    ||
                                    ||
                                    \/
                              +-------------+
                              |   chassis   |---+
                              |             |<--|
                              +-------------+
                                    ||
                     ______1:N______||_____1:M_______
                     ||------------------ ---------||
                     \/                            \/
              +--------------+               +-----------+
          +---|     slot     |               |   board   |
          |-->|  /sub-slot   |               |           |
              +--------------+               +-----------+
                                                   ||
                                                   ||1:N
                                                   \/
                                             +-----------+
                                             |    port   |
                                             +-----------+
]]></artwork>
            </artset>
          </figure>
          <t>The "iana-hardware" module <xref target="IANA_HW_YANG"/> defines YANG identities for
the hardware component types in the IANA-maintained "IANA-ENTITY-MIB"
registry.</t>
          <t>Some of the definitions taken from <xref target="RFC8348"/> are based on the ENTITY-MIB <xref target="RFC6933"/>.</t>
          <t>Additional attributes of specific hardware, such as CPU,
storage, port, or power supply are defined in the hardware extension.</t>
        </section>
        <section anchor="sw-inventory">
          <name>Software Components</name>
          <t>Each instance of a network element or a component includes its own "software-rev" list which provides basic software attributes for each entity (network element and component).</t>
          <t>The scope of the list is to provide information about the software images that are running within the related entity. The term "running" here is intended as the software modules that the controller has discovered as running in the network element or component as explained in section <xref target="operational"/>. The way used by the controller to discover and keep synchronized running software information as well as manage transient state (e.g. reboot or loss of connectivity with the network element) is outside the scope of this document.</t>
          <t>The model supports scenarios where multiple software modules can be images running within the entity.
For example, one Operating System and one or more Application software modules can be running in a network element, and, in the same way, one boot-loader, one firmware and one or more Field-Programmable Gate Array (FPGA) software modules can be running on a component like a circuit pack.</t>
          <t>For each software module running on the entity, the name and version information is provided.</t>
          <t>The management of inactive/standby software
modules and of the software upgrade or downgrade life-cycle are outside the scope of the base inventory model and can be addressed in other models which augment the base inventory model such as the model defined in <xref target="I-D.ietf-ivy-network-inventory-software"/>.</t>
          <t>The software and hardware components share the same attributes of the
component and have similar replaceability requirements. Generally, the
device also has other software data, for example, one or more
records of software patches that have been applied.</t>
          <t>The software components lifecycle (such as activation, deactivation, installation, storage, removal, etc.) is outside the scope of this document and defined in other documents such as <xref target="I-D.ietf-ivy-network-inventory-software"/>.</t>
        </section>
      </section>
      <section anchor="changes-since-rfc-8348">
        <name>Changes Since RFC 8348</name>
        <t>This document re-defines some attributes listed in <xref target="RFC8348"/>, based on some integration experience for network inventory data.</t>
        <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 therefore, in this model the attribute is called "part-number".</t>
        </section>
        <section anchor="component-identifiers">
          <name>Component identifiers</name>
          <t>There are some use cases where the name of the components are assigned and changed by the operator. In these cases, the assigned names are also not guaranteed to be always unique.</t>
          <t>In order to support these use cases, this model is not aligned with <xref target="RFC8348"/> in defining the component name as the key for the component list.</t>
          <t>Instead, the name is defined as an optional attribute and the component-id is defined as the key for the component list (in alignment with the approach followed for the network-element list).</t>
        </section>
        <section anchor="parent-relative-position">
          <name>Parent relative position</name>
          <t>There are some use cases where the parent relative position is not reported as an integer but as a string.</t>
          <t>In order to support these use cases and allowing a straightforward match between the relative position definition in the device and in the network inventory, this model is defining the 'parent-rel-pos' data node as a string instead of as an integer.</t>
          <t>If the device reports the relative position as an integer, e.g., using the device model defined in <xref target="RFC8348"/>, the integer value reported by the device can be mapped into a string within the network inventory.</t>
        </section>
      </section>
    </section>
    <section anchor="ni-tree">
      <name>Network Inventory Tree Diagram</name>
      <t><xref target="fig-ni-tree"/> shows the tree diagram of the YANG data model defined in module "ietf-network-inventory" (<xref target="ni-yang"/>).</t>
      <figure anchor="fig-ni-tree">
        <name>Network inventory tree diagram</name>
        <sourcecode type="yangtree" name="ietf-network-inventory.tree"><![CDATA[
module: ietf-network-inventory
  +--ro network-inventory
     +--ro network-elements
        +--ro network-element* [ne-id]
           +--ro ne-id           string
           +--ro ne-type?        identityref
           +--ro uuid?           yang:uuid
           +--ro name?           string
           +--ro alias?          string
           +--ro description?    string
           +--ro software-rev* [name]
           |  +--ro name        string
           |  +--ro revision?   string
           |  +--ro patch* [revision]
           |     +--ro revision    string
           +--ro mfg-name?       string
           +--ro product-name?   string
           +--ro product-rev?    string
           +--ro components
              +--ro component* [component-id]
                 +--ro component-id      string
                 +--ro class             union
                 +--ro uuid?             yang:uuid
                 +--ro name?             string
                 +--ro alias?            string
                 +--ro description?      string
                 +--ro software-rev* [name]
                 |  +--ro name        string
                 |  +--ro revision?   string
                 |  +--ro patch* [revision]
                 |     +--ro revision    string
                 +--ro mfg-name?         string
                 +--ro product-name?     string
                 +--ro hardware-rev?     string
                 +--ro mfg-date?         yang:date-and-time
                 +--ro part-number?      string
                 +--ro serial-number?    string
                 +--ro asset-id?         string
                 +--ro is-fru?           boolean
                 +--ro uri*              inet:uri
                 +--ro parent*
                 |       -> ../../component/component-id
                 +--ro parent-rel-pos?   string
                 +--ro is-main?          boolean
]]></sourcecode>
      </figure>
    </section>
    <section anchor="ni-yang">
      <name>YANG Data Model for Network Inventory</name>
      <figure anchor="fig-ni-yang">
        <name>Network inventory YANG module</name>
        <sourcecode type="yang" markers="true" name="ietf-network-inventory@2026-06-24.yang"><![CDATA[
module ietf-network-inventory {
  yang-version 1.1;
  namespace "urn:ietf:params:xml:ns:yang:ietf-network-inventory";
  prefix nwi;

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

  organization
    "IETF IVY Working Group";
  contact
    "WG Web:   <https://datatracker.ietf.org/wg/ivy/>
     WG List:  <mailto:ivy@ietf.org>

     Editor:   Chaode Yu
               <yuchaode@huawei.com>

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

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

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

     Editor:   Phil Bedard
               <phbedard@cisco.com>";
  description
    "This module defines a base model for retrieving network
     inventory.

     Copyright (c) 2026 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.";

  revision 2026-09-16 {
    description
      "Initial version";
    reference
      "RFC XXXX: A YANG Data Model for Network Inventory.";
  }

  /*
   * Identities
   */

  identity non-hardware-component-class {
    description
      "Base identity for non hardware components (e.g., software
       components) in a managed device.";
  }

  identity ne-type {
    description
      "Base identity for network element (NE) types.";
  }

  identity ne-physical {
    base nwi:ne-type;
    description
      "A physical network element (NE). ";
  }

  /*
   * Types
   */

  typedef ne-ref {
    type leafref {
      path "/nwi:network-inventory/nwi:network-elements"
         + "/nwi:network-element/nwi:ne-id";
      require-instance false;
    }
    description
      "This type is intended to be used by data models that need to
       reference Network Element.";
  }

  /*
   * Groupings
   */

  grouping component-ref {
    description
      "This grouping is intended to be used by data models that need
       to reference a component within a Network Element.";
    leaf ne-ref {
      type nwi:ne-ref;
      description
        "The reference to the Network Element which contains the
         component to be referenced.";
    }
    leaf component-ref {
      type leafref {
        path "/nwi:network-inventory/nwi:network-elements/"
           + "nwi:network-element[nwi:ne-id=current()/../ne-ref]"
           + "/nwi:components/nwi:component/nwi:component-id";
        require-instance false;
      }
      description
        "The reference to the component.";
    }
  }

  grouping port-ref {
    description
      "This grouping is intended to be used by data models that need
       to reference a port component within a Network Element.";
    leaf ne-ref {
      type nwi:ne-ref;
      description
        "The reference to the Network Element which contains the
         port to be referenced.";
    }
    leaf port-ref {
      type leafref {
        path "/nwi:network-inventory/nwi:network-elements/"
           + "nwi:network-element[nwi:ne-id=current()/../ne-ref]"
           + "/nwi:components/nwi:component/nwi:component-id";
        require-instance false;
      }
      description
        "The reference to the port component.

         Note: the class of the referenced port component MUST be
         'ianahw:port' or a derived identity.";
    }
  }

  grouping basic-common-entity-attributes {
    description
      "The set of basic attributes which are common to all the
       entities (e.g., component, network elements, location, passive
       entities) defined in this module and in other inventory
       modules.";
    leaf uuid {
      type yang:uuid;
      description
        "The Universally Unique Identifier of the entity
         (e.g., component).";
    }
    leaf name {
      type string;
      description
        "The name of the  entity (e.g., component), as specified by
         a network operator, that provides a non-volatile 'handle'
         for the entity. The The network operator can specify a
         different value anytime during the entity lifetime.

         If no value is discovered, the server MAY set the value of
         this node to a locally unique value in the operational
         state.";
    }
    leaf alias {
      type string;
      description
        "The alias name of the entity (e.g., component). This alias
         name can be specified by a network operator.";
    }
    leaf description {
      type string;
      description
        "The textual description of the entity (e.g., component).";
    }
  }

  grouping ne-component-common-entity-attributes {
    description
      "The set of attributes which are common to all the entities
       (e.g., component, network elements) defined in this module.";
    uses basic-common-entity-attributes;
    list software-rev {
      key "name";
      description
        "The list of the software modules representing the running
         software images within the entity (e.g., component).";
      leaf name {
        type string;
        description
          "The vendor-specific name of the software module.";
      }
      leaf revision {
        type string;
        description
          "The vendor-specific revision string of the software
           module when not implicitly defined as part of the name of
           the software module.";
      }
      list patch {
        key "revision";
        description
          "The list of the running software patches for the software
           module.";
        leaf revision {
          type string;
          description
            "The vendor-specific revision string of the software
             patch when not implicitly defined as part of the name or
             revision of the software module.";
        }
      }
    }
    leaf mfg-name {
      type string;
      description
        "The name of the manufacturer of this entity
         (e.g., component).";
    }
    leaf product-name {
      type string;
      description
        "The vendor-specific and human-interpretable string
         describing the entity (e.g., component) type. It is expected
         that vendors assign unique product names to different entity
         (e.g., component) types within the scope of the vendor.";
    }
  }

  grouping component-attributes {
    description
      "The set of common attributes of a component.

       This grouping is intended also to be re-used by data models
       that need to report the common attributes of a component.";
    leaf component-id {
      type string;
      description
        "An identifier that uniquely identifies the component
         in a node.";
    }
    leaf class {
      type union {
        type identityref {
          base ianahw:hardware-class;
        }
        type identityref {
          base nwi:non-hardware-component-class;
        }
      }
      mandatory true;
      description
        "The type of the component.";
    }
    uses ne-component-common-entity-attributes {
      refine "software-rev" {
        reference
          "RFC 6933: Entity MIB (Version 4) -
                     entPhysicalSoftwareRev";
      }
      refine "mfg-name" {
        description
          "The name of the manufacturer of this component.

           The preferred value is the manufacturer name
           string actually printed on the component itself
           (if present).

           Note that comparisons between instances of the
           'part-number', 'software-rev', and 'serial-number' nodes
           are only meaningful amongst components with the same value
           of 'mfg-name'.

           If the manufacturer name string associated with
           the component is unknown to the server, then this node is
           not instantiated.";
        reference
          "RFC 6933: Entity MIB (Version 4) -
                     entPhysicalMfgName";
      }
    }
    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 mfg-date {
      type yang:date-and-time;
      description
        "The date of manufacturing of the component.";
      reference
        "RFC 6933: Entity MIB (Version 4) - entPhysicalMfgDate";
    }
    leaf part-number {
      type string;
      description
        "The vendor-specific part number of the component
         type. It is expected that vendors assign unique part
         numbers to different component types within the
         scope of the vendor.";
    }
    leaf serial-number {
      type string;
      description
        "The vendor-specific serial number of the component instance.

         It is expected that vendors assign unique serial numbers to
         different component instances within the scope of the
         'part-number'.";
    }
    leaf asset-id {
      type string;
      description
        "This node is an asset tracking identifier for the component,
         as specified by a network operator.

         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-list uri {
      type inet:uri;
      description
        "This node contains identification information about
         the component.";
      reference
        "RFC 6933: Entity MIB (Version 4) - entPhysicalUris";
    }
  }

  /* 
   * Data Nodes
   */

  container network-inventory {
    config false;
    description
      "Top-level container for network inventory.";
    container network-elements {
      description
        "The top-level container for the list of network elements
         within the network.";
      list network-element {
        key "ne-id";
        description
          "The list of network elements within the network.";
        leaf ne-id {
          type string;
          description
            "An identifier that uniquely identifies the NE in
             a network.";
        }
        leaf ne-type {
          type identityref {
            base nwi:ne-type;
          }
          default "nwi:ne-physical";
          description
            "The network element type.";
          reference
            "RFC XXXX: A YANG Data Model for Network Inventory,
                       Section 3.";
        }
        uses ne-component-common-entity-attributes;
        leaf product-rev {
          type string;
          description
            "The vendor-specific product revision string for the
             network-element.";
        }
        container components {
          description
            "The top-level container for the list of components
             within a network element.";
          list component {
            key "component-id";
            description
              "The list of components within a network element.";
            uses component-attributes;
            leaf-list parent {
              type leafref {
                path "../../component/component-id";
                require-instance false;
              }
              description
                "The identifiers of all the components that
                 physically contain this component.

                 If this list is empty, this component is not
                 contained in any other component but it is contained
                 in the network-element.";
              reference
                "RFC 6933: Entity MIB (Version 4) -
                           entPhysicalContainedIn";
            }
            leaf parent-rel-pos {
              when 'count(../parent) < 2' {
                description
                  "This data node is applicable only when this
                   component is contained in the network-element or
                   in only one parent component.";
              }
              type string;
              description
                "The relative position with respect to the parent
                 component among all the sibling components.

                 The format of this string is
                 implementation-specific. When mapping from RFC 6933,
                 the entPhysicalParentRelPos integer value SHOULD be
                 encoded as an integer string.";
              reference
                "RFC 6933: Entity MIB (Version 4) -
                           entPhysicalParentRelPos";
            }
            leaf is-main {
              when "derived-from-or-self(../nwi:class, "
                 + "'ianahw:chassis')";
              type boolean;
              description
                "This node indicates whether the chassis is taking or
                 not the 'main' role.

                 This node is applicable only to scenarios where the
                 network element contains chassis components which
                 can take or not the 'main' role (e.g., multi-chassis
                 network elements).

                 It is therefore omitted in scenarios where the
                 network element does not contain chassis components
                 which can can take or not the 'main' role
                 (e.g., single-chassis network elements).";
            }
          }
        }
      }
    }
  }
}
]]></sourcecode>
      </figure>
    </section>
    <section anchor="operational">
      <name>Operational Considerations</name>
      <t>The network inventory YANG data model defined in the document is intended to report the actual inventory data that a network controller knows of the network elements and components actually installed within the network. Therefore, this data model provides a read-only perspective of the network inventory information.</t>
      <t>It is worth noting that some information reported within this YANG data model can be configured on the device through mechanisms which are outside the scope of this document.</t>
      <t>As outlined in <xref target="intro"/>, per the definition of <xref target="RFC8309"/> and <xref target="RFC8969"/>, the network inventory model is a network model.</t>
      <t>This information can be provided by a network controller to a higher level hierarchical network controller, to an Inventory OSS or to any other type of application which needs to discover the network inventory information.</t>
      <t>For example, in the context of ACTN, the network inventory YANG data model can be used at the MPI interfaces, as defined in <xref target="RFC8453"/>, or on an interface, not defined in <xref target="RFC8453"/> between the MDSC and the Inventory OSS.</t>
      <t>The information in the model is discovered by the controller through mechanisms which are outside the scope of this document.</t>
      <t>Note that distinguishing between the cases where a NE is unreachable versus decommissioned depends on the mechanism used for discovering this information and is outside the scope of this document.</t>
      <t>For example, the network controller can collect this information by reading it from the devices using the device model supported by the devices. This model does not constrain the device models used on the device: the YANG data model defined in <xref target="RFC8348"/> is an option but other options (e.g., vendor specific interfaces or YANG data models) are also allowed. In case some information is not provided by the device, the network controller SHALL omit this information unless this information is known by other sources of information (e.g., through local configuration within the network controller).</t>
      <t>In case of hierarchical controllers, a hierarchical network controller can also collect the network inventory information from its lower level network controllers using this YANG data model (or other mechanisms which are outside the scope of this document) and report the combined network inventory information to a higher level network controller, to an Inventory OSS or to any other type of application which needs to discover the network inventory information.</t>
      <t>Since this YANG data model reports what it is actually installed in the network, if a component (e.g., a board) is physically removed from the network, also its descendant components (e.g., daughter boards and ports) are also physically removed from the network and, as a consequence, from the inventory data being reported through this YANG data model.</t>
      <t>If the inventory system defined by this document is to be deployed into a network which has a preexisting inventory system, it is worth noting that existing deployments are based on proprietary Inventory OSS and that the migration path is highly dependent on the specific proprietary solution. Therefore, the migration processes are operator dependent: it is expected that the deployment of the standard YANG-based solution on the controllers will take some time and its integration with existing Inventory OSSes will also take longer time. In a longer term, the network controllers could provide inventory information, using this YANG data model, also to next generation OSSes.</t>
      <t>When this model is used, the source of truth for the inventory data in the scope of this model is the network controller providing this data. Some legacy inventory information (e.g., inactive assets, warehouse spares, procurement or commercial metadata) fall outside the scope of the base model.</t>
    </section>
    <section anchor="security">
      <name>Security Considerations</name>
      <t>This section is modeled after the template described in <xref section="3.7.1" sectionFormat="of" target="RFC9907"/>.</t>
      <t>The "ietf-network-inventory" YANG module defines a data model that is
designed to be accessed via YANG-based management protocols, such as
Network Configuration Protocol (NETCONF) <xref target="RFC6241"/> and RESTCONF <xref target="RFC8040"/>.
These YANG-based management protocols (1) have to use a secure transport
layer (e.g., SSH <xref target="RFC4252"/>, TLS <xref target="RFC9846"/>, and
QUIC <xref target="RFC9000"/>) and (2) have to use mutual authentication.</t>
      <t>The Network Configuration Access Control Model (NACM) <xref target="RFC8341"/>
provides the means to restrict access for particular NETCONF or
RESTCONF users to a preconfigured subset of all available NETCONF or
RESTCONF protocol operations and content.</t>
      <t>Some of the readable data nodes in this YANG module may be considered
sensitive or vulnerable in some network environments.  It is thus
important to control read access (e.g., via get, get-config, or
notification) to these data nodes.</t>
      <t>Specifically, the following subtrees and data nodes have particular sensitivities/vulnerabilities:</t>
      <ul spacing="normal">
        <li>
          <t>"/nwi:network-elements"</t>
        </li>
      </ul>
      <ul empty="true">
        <li>
          <t>This subtree reports the inventory information for all the network elements and their hardware components deployed within the network as well as of the software modules being discovered as running on these network elements and components. Unauthorized access to this subtree can disclose this information. A malicious attacker can use this information to perform targeted attacks to network elements, hardware components or software modules with known vulnerabilities.</t>
        </li>
      </ul>
      <ul empty="true">
        <li>
          <t>In large networks, the massive volume of reported data can cause scalability issues, as reported in <xref target="scalability"/>. A malicious attacker could leverage this to cause  resource exhaustion.</t>
        </li>
      </ul>
      <t>Modules that use the groupings that are defined in this document
should identify the corresponding security considerations. For example, reusing the 'component-attributes' grouping may expose sensitive information.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>IANA is requested to register the following URI in the "ns"
registry within the "IETF XML Registry" group <xref target="RFC3688"/>:</t>
      <artwork><![CDATA[
   URI: urn:ietf:params:xml:ns:yang:ietf-network-inventory
   Registrant Contact: The IESG
   XML: N/A; the requested URI is an XML namespace.
]]></artwork>
      <t>IANA is requested to register the following YANG module in the "YANG
Module Names" registry <xref target="RFC6020"/> within the "YANG Parameters"
registry group.</t>
      <artwork><![CDATA[
   Name:         ietf-network-inventory
   Maintained by IANA?  N
   Namespace:    urn:ietf:params:xml:ns:yang:ietf-network-inventory
   Prefix:       nwi
   Reference:    RFC XXXX
]]></artwork>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="IANA_ENTITY_MIB" target="https://www.iana.org/assignments/ianaentity-mib/ianaentity-mib.xhtml">
          <front>
            <title>IANA-ENTITY-MIB</title>
            <author>
              <organization>IANA</organization>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="IANA_HW_YANG" target="https://www.iana.org/assignments/iana-hardware/iana-hardware.xhtml">
          <front>
            <title>iana-hardware YANG Module</title>
            <author>
              <organization>IANA</organization>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="RFC8348">
          <front>
            <title>A YANG Data Model for Hardware Management</title>
            <author fullname="A. Bierman" initials="A." surname="Bierman"/>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
            <author fullname="J. Dong" initials="J." surname="Dong"/>
            <author fullname="D. Romascanu" initials="D." surname="Romascanu"/>
            <date month="March" year="2018"/>
            <abstract>
              <t>This document defines a YANG data model for the management of hardware on a single server.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8348"/>
          <seriesInfo name="DOI" value="10.17487/RFC8348"/>
        </reference>
        <reference anchor="RFC8342">
          <front>
            <title>Network Management Datastore Architecture (NMDA)</title>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
            <author fullname="J. Schoenwaelder" initials="J." surname="Schoenwaelder"/>
            <author fullname="P. Shafer" initials="P." surname="Shafer"/>
            <author fullname="K. Watsen" initials="K." surname="Watsen"/>
            <author fullname="R. Wilton" initials="R." surname="Wilton"/>
            <date month="March" year="2018"/>
            <abstract>
              <t>Datastores are a fundamental concept binding the data models written in the YANG data modeling language to network management protocols such as the Network Configuration Protocol (NETCONF) and RESTCONF. This document defines an architectural framework for datastores based on the experience gained with the initial simpler model, addressing requirements that were not well supported in the initial model. This document updates RFC 7950.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8342"/>
          <seriesInfo name="DOI" value="10.17487/RFC8342"/>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC7950">
          <front>
            <title>The YANG 1.1 Data Modeling Language</title>
            <author fullname="M. Bjorklund" initials="M." role="editor" surname="Bjorklund"/>
            <date month="August" year="2016"/>
            <abstract>
              <t>YANG is a data modeling language used to model configuration data, state data, Remote Procedure Calls, and notifications for network management protocols. This document describes the syntax and semantics of version 1.1 of the YANG language. YANG version 1.1 is a maintenance release of the YANG language, addressing ambiguities and defects in the original specification. There are a small number of backward incompatibilities from YANG version 1. This document also specifies the YANG mappings to the Network Configuration Protocol (NETCONF).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7950"/>
          <seriesInfo name="DOI" value="10.17487/RFC7950"/>
        </reference>
        <reference anchor="RFC6241">
          <front>
            <title>Network Configuration Protocol (NETCONF)</title>
            <author fullname="R. Enns" initials="R." role="editor" surname="Enns"/>
            <author fullname="M. Bjorklund" initials="M." role="editor" surname="Bjorklund"/>
            <author fullname="J. Schoenwaelder" initials="J." role="editor" surname="Schoenwaelder"/>
            <author fullname="A. Bierman" initials="A." role="editor" surname="Bierman"/>
            <date month="June" year="2011"/>
            <abstract>
              <t>The Network Configuration Protocol (NETCONF) defined in this document provides mechanisms to install, manipulate, and delete the configuration of network devices. It uses an Extensible Markup Language (XML)-based data encoding for the configuration data as well as the protocol messages. The NETCONF protocol operations are realized as remote procedure calls (RPCs). This document obsoletes RFC 4741. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6241"/>
          <seriesInfo name="DOI" value="10.17487/RFC6241"/>
        </reference>
        <reference anchor="RFC9911">
          <front>
            <title>Common YANG Data Types</title>
            <author fullname="J. Schönwälder" initials="J." role="editor" surname="Schönwälder"/>
            <date month="December" year="2025"/>
            <abstract>
              <t>This document defines a collection of common data types to be used with the YANG data modeling language. It includes several new type definitions and obsoletes RFC 6991.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9911"/>
          <seriesInfo name="DOI" value="10.17487/RFC9911"/>
        </reference>
        <reference anchor="RFC6933">
          <front>
            <title>Entity MIB (Version 4)</title>
            <author fullname="A. Bierman" initials="A." surname="Bierman"/>
            <author fullname="D. Romascanu" initials="D." surname="Romascanu"/>
            <author fullname="J. Quittek" initials="J." surname="Quittek"/>
            <author fullname="M. Chandramouli" initials="M." surname="Chandramouli"/>
            <date month="May" year="2013"/>
            <abstract>
              <t>This memo defines a portion of the Management Information Base (MIB) for use with network management protocols in the Internet community. In particular, it describes managed objects used for managing multiple logical and physical entities managed by a single Simple Network Management Protocol (SNMP) agent. This document specifies version 4 of the Entity MIB. This memo obsoletes version 3 of the Entity MIB module published as RFC 4133.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6933"/>
          <seriesInfo name="DOI" value="10.17487/RFC6933"/>
        </reference>
        <reference anchor="RFC8341">
          <front>
            <title>Network Configuration Access Control Model</title>
            <author fullname="A. Bierman" initials="A." surname="Bierman"/>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
            <date month="March" year="2018"/>
            <abstract>
              <t>The standardization of network configuration interfaces for use with the Network Configuration Protocol (NETCONF) or the RESTCONF protocol requires a structured and secure operating environment that promotes human usability and multi-vendor interoperability. There is a need for standard mechanisms to restrict NETCONF or RESTCONF protocol access for particular users to a preconfigured subset of all available NETCONF or RESTCONF protocol operations and content. This document defines such an access control model.</t>
              <t>This document obsoletes RFC 6536.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="91"/>
          <seriesInfo name="RFC" value="8341"/>
          <seriesInfo name="DOI" value="10.17487/RFC8341"/>
        </reference>
        <reference anchor="RFC6020">
          <front>
            <title>YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)</title>
            <author fullname="M. Bjorklund" initials="M." role="editor" surname="Bjorklund"/>
            <date month="October" year="2010"/>
            <abstract>
              <t>YANG is a data modeling language used to model configuration and state data manipulated by the Network Configuration Protocol (NETCONF), NETCONF remote procedure calls, and NETCONF notifications. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6020"/>
          <seriesInfo name="DOI" value="10.17487/RFC6020"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="TMF_SD2-20" target="https://www.tmforum.org/resources/suite/mtosi-4-0/">
          <front>
            <title>SD2-20_Equipment Model</title>
            <author>
              <organization>TM Forum</organization>
            </author>
            <date year="2008" month="May"/>
          </front>
          <seriesInfo name="TMF MTOSI 4.0, Network Resource Fulfilment (NRF), SD2-20" value=""/>
        </reference>
        <reference anchor="OpenConfig" target="https://github.com/openconfig/public/tree/v5.6.0/">
          <front>
            <title>OpenConfig Public Release v5.6.0</title>
            <author>
              <organization>OpenConfig Working Group</organization>
            </author>
            <date year="2026" month="January"/>
          </front>
          <seriesInfo name="Release 5.6.0" value=""/>
        </reference>
        <reference anchor="I-D.ietf-teas-actn-poi-applicability">
          <front>
            <title>Applicability of Abstraction and Control of Traffic Engineered Networks (ACTN) to Packet Optical Integration (POI)</title>
            <author fullname="Fabio Peruzzini" initials="F." surname="Peruzzini">
              <organization>FiberCop</organization>
            </author>
            <author fullname="Jean-Francois Bouquier" initials="J." surname="Bouquier">
              <organization>Vodafone</organization>
            </author>
            <author fullname="Italo Busi" initials="I." surname="Busi">
              <organization>Huawei</organization>
            </author>
            <author fullname="Daniel King" initials="D." surname="King">
              <organization>Old Dog Consulting</organization>
            </author>
            <author fullname="Daniele Ceccarelli" initials="D." surname="Ceccarelli">
              <organization>Cisco</organization>
            </author>
            <date day="31" month="August" year="2026"/>
            <abstract>
              <t>   This document explores the applicability of the Abstraction and
   Control of TE Networks (ACTN) architecture to Packet Optical
   Integration (POI) within the context of IP/MPLS and optical
   internetworking.  It examines the YANG data models defined by the
   IETF that enable an ACTN-based deployment architecture and highlights
   specific scenarios pertinent to Service Providers.

   Existing IETF protocols and data models are identified for each
   multi-technology scenario (packet over optical), particularly
   emphasising the Multi-Domain Service Coordinator to Provisioning
   Network Controller Interface (MPI) within the ACTN architecture

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-teas-actn-poi-applicability-20"/>
        </reference>
        <reference anchor="RFC8309">
          <front>
            <title>Service Models Explained</title>
            <author fullname="Q. Wu" initials="Q." surname="Wu"/>
            <author fullname="W. Liu" initials="W." surname="Liu"/>
            <author fullname="A. Farrel" initials="A." surname="Farrel"/>
            <date month="January" year="2018"/>
            <abstract>
              <t>The IETF has produced many modules in the YANG modeling language. The majority of these modules are used to construct data models to model devices or monolithic functions.</t>
              <t>A small number of YANG modules have been defined to model services (for example, the Layer 3 Virtual Private Network Service Model (L3SM) produced by the L3SM working group and documented in RFC 8049).</t>
              <t>This document describes service models as used within the IETF and also shows where a service model might fit into a software-defined networking architecture. Note that service models do not make any assumption of how a service is actually engineered and delivered for a customer; details of how network protocols and devices are engineered to deliver a service are captured in other modules that are not exposed through the interface between the customer and the provider.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8309"/>
          <seriesInfo name="DOI" value="10.17487/RFC8309"/>
        </reference>
        <reference anchor="RFC8969">
          <front>
            <title>A Framework for Automating Service and Network Management with YANG</title>
            <author fullname="Q. Wu" initials="Q." role="editor" surname="Wu"/>
            <author fullname="M. Boucadair" initials="M." role="editor" surname="Boucadair"/>
            <author fullname="D. Lopez" initials="D." surname="Lopez"/>
            <author fullname="C. Xie" initials="C." surname="Xie"/>
            <author fullname="L. Geng" initials="L." surname="Geng"/>
            <date month="January" year="2021"/>
            <abstract>
              <t>Data models provide a programmatic approach to represent services and networks. Concretely, they can be used to derive configuration information for network and service components, and state information that will be monitored and tracked. Data models can be used during the service and network management life cycle (e.g., service instantiation, service provisioning, service optimization, service monitoring, service diagnosing, and service assurance). Data models are also instrumental in the automation of network management, and they can provide closed-loop control for adaptive and deterministic service creation, delivery, and maintenance.</t>
              <t>This document describes a framework for service and network management automation that takes advantage of YANG modeling technologies. This framework is drawn from a network operator perspective irrespective of the origin of a data model; thus, it can accommodate YANG modules that are developed outside the IETF.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8969"/>
          <seriesInfo name="DOI" value="10.17487/RFC8969"/>
        </reference>
        <reference anchor="RFC8453">
          <front>
            <title>Framework for Abstraction and Control of TE Networks (ACTN)</title>
            <author fullname="D. Ceccarelli" initials="D." role="editor" surname="Ceccarelli"/>
            <author fullname="Y. Lee" initials="Y." role="editor" surname="Lee"/>
            <date month="August" year="2018"/>
            <abstract>
              <t>Traffic Engineered (TE) networks have a variety of mechanisms to facilitate the separation of the data plane and control plane. They also have a range of management and provisioning protocols to configure and activate network resources. These mechanisms represent key technologies for enabling flexible and dynamic networking. The term "Traffic Engineered network" refers to a network that uses any connection-oriented technology under the control of a distributed or centralized control plane to support dynamic provisioning of end-to- end connectivity.</t>
              <t>Abstraction of network resources is a technique that can be applied to a single network domain or across multiple domains to create a single virtualized network that is under the control of a network operator or the customer of the operator that actually owns the network resources.</t>
              <t>This document provides a framework for Abstraction and Control of TE Networks (ACTN) to support virtual network services and connectivity services.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8453"/>
          <seriesInfo name="DOI" value="10.17487/RFC8453"/>
        </reference>
        <reference anchor="RFC8340">
          <front>
            <title>YANG Tree Diagrams</title>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
            <author fullname="L. Berger" initials="L." role="editor" surname="Berger"/>
            <date month="March" year="2018"/>
            <abstract>
              <t>This document captures the current syntax used in YANG module tree diagrams. The purpose of this document is to provide a single location for this definition. This syntax may be updated from time to time based on the evolution of the YANG language.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="215"/>
          <seriesInfo name="RFC" value="8340"/>
          <seriesInfo name="DOI" value="10.17487/RFC8340"/>
        </reference>
        <reference anchor="RFC8792">
          <front>
            <title>Handling Long Lines in Content of Internet-Drafts and RFCs</title>
            <author fullname="K. Watsen" initials="K." surname="Watsen"/>
            <author fullname="E. Auerswald" initials="E." surname="Auerswald"/>
            <author fullname="A. Farrel" initials="A." surname="Farrel"/>
            <author fullname="Q. Wu" initials="Q." surname="Wu"/>
            <date month="June" year="2020"/>
            <abstract>
              <t>This document defines two strategies for handling long lines in width-bounded text content. One strategy, called the "single backslash" strategy, is based on the historical use of a single backslash ('\') character to indicate where line-folding has occurred, with the continuation occurring with the first character that is not a space character (' ') on the next line. The second strategy, called the "double backslash" strategy, extends the first strategy by adding a second backslash character to identify where the continuation begins and is thereby able to handle cases not supported by the first strategy. Both strategies use a self-describing header enabling automated reconstitution of the original content.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8792"/>
          <seriesInfo name="DOI" value="10.17487/RFC8792"/>
        </reference>
        <reference anchor="I-D.ietf-ivy-network-inventory-location">
          <front>
            <title>A YANG Data Model for Network Inventory Location</title>
            <author fullname="Bo Wu" initials="B." surname="Wu">
              <organization>Huawei</organization>
            </author>
            <author fullname="Sergio Belotti" initials="S." surname="Belotti">
              <organization>Nokia</organization>
            </author>
            <author fullname="Jean-Francois Bouquier" initials="J." surname="Bouquier">
              <organization>Vodafone</organization>
            </author>
            <author fullname="Fabio Peruzzini" initials="F." surname="Peruzzini">
              <organization>FiberCop</organization>
            </author>
            <author fullname="Phil Bedard" initials="P." surname="Bedard">
              <organization>Cisco</organization>
            </author>
            <date day="6" month="July" year="2026"/>
            <abstract>
              <t>   This document defines a YANG data model for Network Inventory
   location (e.g., site, room, rack, geo-location data), which provides
   location information with different granularity levels for
   inventoried network elements.

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

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-ivy-network-inventory-location-06"/>
        </reference>
        <reference anchor="RFC1157">
          <front>
            <title>Simple Network Management Protocol (SNMP)</title>
            <author fullname="J.D. Case" initials="J.D." surname="Case"/>
            <author fullname="M. Fedor" initials="M." surname="Fedor"/>
            <author fullname="M.L. Schoffstall" initials="M.L." surname="Schoffstall"/>
            <author fullname="J. Davin" initials="J." surname="Davin"/>
            <date month="May" year="1990"/>
            <abstract>
              <t>This RFC is a re-release of RFC 1098, with a changed "Status of this Memo" section plus a few minor typographical corrections. This memo defines a simple protocol by which management information for a network element may be inspected or altered by logically remote users. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="1157"/>
          <seriesInfo name="DOI" value="10.17487/RFC1157"/>
        </reference>
        <reference anchor="I-D.ietf-ivy-network-inventory-software">
          <front>
            <title>A YANG Network Data Model of Network Inventory Software Extensions</title>
            <author fullname="Bo Wu" initials="B." surname="Wu">
              <organization>Huawei</organization>
            </author>
            <author fullname="Cheng Zhou" initials="C." surname="Zhou">
              <organization>China Mobile</organization>
            </author>
            <author fullname="Qin Wu" initials="Q." surname="Wu">
              <organization>Huawei</organization>
            </author>
            <author fullname="Mohamed Boucadair" initials="M." surname="Boucadair">
              <organization>Orange</organization>
            </author>
            <date day="6" month="July" year="2026"/>
            <abstract>
              <t>   This document extends the base Network Inventory YANG model to
   support non-physical network elements (NEs), such as controllers,
   virtual routers, and virtual firewalls, as well as software
   components like platform operating systems and software modules.  In
   addition to the software revisions and patches already defined in the
   base model, this extension introduces software status and time stamp
   information.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-ivy-network-inventory-software-04"/>
        </reference>
        <reference anchor="RFC9907">
          <front>
            <title>Guidelines for Authors and Reviewers of Documents Containing YANG Data Models</title>
            <author fullname="A. Bierman" initials="A." surname="Bierman"/>
            <author fullname="M. Boucadair" initials="M." role="editor" surname="Boucadair"/>
            <author fullname="Q. Wu" initials="Q." surname="Wu"/>
            <date month="March" year="2026"/>
            <abstract>
              <t>This document provides guidelines for authors and reviewers of specifications containing YANG data models, including IANA-maintained YANG modules. Recommendations and procedures are defined, which are intended to increase interoperability and usability of Network Configuration Protocol (NETCONF) and RESTCONF protocol implementations that utilize YANG modules.</t>
              <t>This document obsoletes RFC 8407; it also updates RFC 8126 by providing additional guidelines for writing the IANA considerations for RFCs that specify IANA-maintained YANG modules.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="216"/>
          <seriesInfo name="RFC" value="9907"/>
          <seriesInfo name="DOI" value="10.17487/RFC9907"/>
        </reference>
        <reference anchor="RFC8040">
          <front>
            <title>RESTCONF Protocol</title>
            <author fullname="A. Bierman" initials="A." surname="Bierman"/>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
            <author fullname="K. Watsen" initials="K." surname="Watsen"/>
            <date month="January" year="2017"/>
            <abstract>
              <t>This document describes an HTTP-based protocol that provides a programmatic interface for accessing data defined in YANG, using the datastore concepts defined in the Network Configuration Protocol (NETCONF).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8040"/>
          <seriesInfo name="DOI" value="10.17487/RFC8040"/>
        </reference>
        <reference anchor="RFC4252">
          <front>
            <title>The Secure Shell (SSH) Authentication Protocol</title>
            <author fullname="T. Ylonen" initials="T." surname="Ylonen"/>
            <author fullname="C. Lonvick" initials="C." role="editor" surname="Lonvick"/>
            <date month="January" year="2006"/>
            <abstract>
              <t>The Secure Shell Protocol (SSH) is a protocol for secure remote login and other secure network services over an insecure network. This document describes the SSH authentication protocol framework and public key, password, and host-based client authentication methods. Additional authentication methods are described in separate documents. The SSH authentication protocol runs on top of the SSH transport layer protocol and provides a single authenticated tunnel for the SSH connection protocol. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4252"/>
          <seriesInfo name="DOI" value="10.17487/RFC4252"/>
        </reference>
        <reference anchor="RFC9846">
          <front>
            <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <date month="July" year="2026"/>
            <abstract>
              <t>This document specifies version 1.3 of the Transport Layer Security (TLS) protocol. TLS allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
              <t>This document obsoletes RFC 8446, which specified TLS 1.3. This document obsoletes RFC 5246 (specifying TLS 1.2) and RFCs 5077, 6961, 7627, and 8422, all of which pertain to TLS 1.2 or earlier, and updates RFCs 5705 and 6066. This document also specifies new requirements for TLS 1.2 implementations.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9846"/>
          <seriesInfo name="DOI" value="10.17487/RFC9846"/>
        </reference>
        <reference anchor="RFC9000">
          <front>
            <title>QUIC: A UDP-Based Multiplexed and Secure Transport</title>
            <author fullname="J. Iyengar" initials="J." role="editor" surname="Iyengar"/>
            <author fullname="M. Thomson" initials="M." role="editor" surname="Thomson"/>
            <date month="May" year="2021"/>
            <abstract>
              <t>This document defines the core of the QUIC transport protocol. QUIC provides applications with flow-controlled streams for structured communication, low-latency connection establishment, and network path migration. QUIC includes security measures that ensure confidentiality, integrity, and availability in a range of deployment circumstances. Accompanying documents describe the integration of TLS for key negotiation, loss detection, and an exemplary congestion control algorithm.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9000"/>
          <seriesInfo name="DOI" value="10.17487/RFC9000"/>
        </reference>
        <reference anchor="RFC3688">
          <front>
            <title>The IETF XML Registry</title>
            <author fullname="M. Mealling" initials="M." surname="Mealling"/>
            <date month="January" year="2004"/>
            <abstract>
              <t>This document describes an IANA maintained registry for IETF standards which use Extensible Markup Language (XML) related items such as Namespaces, Document Type Declarations (DTDs), Schemas, and Resource Description Framework (RDF) Schemas.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="81"/>
          <seriesInfo name="RFC" value="3688"/>
          <seriesInfo name="DOI" value="10.17487/RFC3688"/>
        </reference>
        <reference anchor="RFC4152">
          <front>
            <title>A Uniform Resource Name (URN) Namespace for the Common Language Equipment Identifier (CLEI) Code</title>
            <author fullname="K. Tesink" initials="K." surname="Tesink"/>
            <author fullname="R. Fox" initials="R." surname="Fox"/>
            <date month="August" year="2005"/>
            <abstract>
              <t>This document describes a Uniform Resource Name (URN) namespace (RFC 3406) for the assignment of the Common Language Equipment Identifier (CLEI) code, which is used in messages standardized by ANSI. The URN namespace is managed by Telcordia Technologies, Inc., as the maintenance agent for ANSI T1.213. The CLEI code is a globally unique, ten-character alphanumeric intelligent code assigned by Telcordia Technologies at the request of equipment suppliers. The CLEI code identifies communications equipment by specifying product type and features. There is a one-to-one relationship between a CLEI code and supplier's product ID (the manufacturer's name and the part number along with its version number). This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4152"/>
          <seriesInfo name="DOI" value="10.17487/RFC4152"/>
        </reference>
        <reference anchor="RFC7951">
          <front>
            <title>JSON Encoding of Data Modeled with YANG</title>
            <author fullname="L. Lhotka" initials="L." surname="Lhotka"/>
            <date month="August" year="2016"/>
            <abstract>
              <t>This document defines encoding rules for representing configuration data, state data, parameters of Remote Procedure Call (RPC) operations or actions, and notifications defined using YANG as JavaScript Object Notation (JSON) text.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7951"/>
          <seriesInfo name="DOI" value="10.17487/RFC7951"/>
        </reference>
        <reference anchor="I-D.ygb-ivy-passive-network-inventory">
          <front>
            <title>A YANG Data Model for Passive Network Inventory</title>
            <author fullname="Aihua Guo" initials="A." surname="Guo">
              <organization>Futurewei</organization>
            </author>
            <author fullname="tom van caenegem" initials="T." surname="van caenegem">
              <organization>Nokia</organization>
            </author>
            <author fullname="Nigel Davis" initials="N." surname="Davis">
              <organization>Ciena</organization>
            </author>
            <author fullname="Mauro Tilocca" initials="M." surname="Tilocca">
              <organization>FiberCop</organization>
            </author>
            <author fullname="Brad Peters" initials="B." surname="Peters">
              <organization>NBN</organization>
            </author>
            <date day="26" month="May" year="2026"/>
            <abstract>
              <t>   This document presents a YANG data model for tracking and managing
   passive network inventory.  The model augments the base network
   inventory model.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ygb-ivy-passive-network-inventory-05"/>
        </reference>
      </references>
    </references>
    <?line 1118?>

<section anchor="comparison-with-openconfig-platform-yang-data-model">
      <name>Comparison With OpenConfig Platform YANG Data Model</name>
      <t>Because an increasing number of devices implement OpenConfig, this appendix compares the OpenConfig Platform model, defined in <xref target="OpenConfig"/>, with the base network inventory model, defined in this document, to ensure network controllers can accurately report discovered data.</t>
      <t>The OpenConfig platform data model, defined by the "openconfig-platform" and "openconfig-platform-types" modules in <xref target="OpenConfig"/>, is a device model that uses a generic component concept to describe internal components and containers, similar to the models in <xref target="RFC8348"/> and in this document. Therefore, <xref target="tab-oc"/> compares the component attributes between the "openconfig-platform" YANG module in <xref target="OpenConfig"/> and the "ietf-network-inventory" module in <xref target="ni-yang"/>.</t>
      <table anchor="tab-oc">
        <name>Comparison between openconfig platform and inventory data models</name>
        <thead>
          <tr>
            <th align="left">Attributes in "openconfig-platform"</th>
            <th align="left">Attributes in "ietf-network-inventory"</th>
            <th align="left">Remark</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">name</td>
            <td align="left">name</td>
            <td align="left"> </td>
          </tr>
          <tr>
            <td align="left">type</td>
            <td align="left">class</td>
            <td align="left">See <xref target="tab-oc-hw"/> for the comparison between "oc-platform-type:OPENCONFIG_HARDWARE_COMPONENT" and "ianahw:hardware-class"</td>
          </tr>
          <tr>
            <td align="left">id</td>
            <td align="left">uuid</td>
            <td align="left"> </td>
          </tr>
          <tr>
            <td align="left">location</td>
            <td align="left">location</td>
            <td align="left"> </td>
          </tr>
          <tr>
            <td align="left">description</td>
            <td align="left">description</td>
            <td align="left"> </td>
          </tr>
          <tr>
            <td align="left">mfg-name</td>
            <td align="left">mfg-name</td>
            <td align="left"> </td>
          </tr>
          <tr>
            <td align="left">mfg-date</td>
            <td align="left">mfg-date</td>
            <td align="left"> </td>
          </tr>
          <tr>
            <td align="left">hardware-version</td>
            <td align="left">hardware-rev</td>
            <td align="left"> </td>
          </tr>
          <tr>
            <td align="left">firmware-version</td>
            <td align="left">software-rev*</td>
            <td align="left">Items of "software-rev" list that provide firmware information</td>
          </tr>
          <tr>
            <td align="left">software-version</td>
            <td align="left">software-rev*</td>
            <td align="left">Items of "software-rev" list that provide software information</td>
          </tr>
          <tr>
            <td align="left">serial-no</td>
            <td align="left">serial-number</td>
            <td align="left"> </td>
          </tr>
          <tr>
            <td align="left">part-no</td>
            <td align="left">part-number</td>
            <td align="left"> </td>
          </tr>
          <tr>
            <td align="left">clei-code</td>
            <td align="left">uri</td>
            <td align="left">CLEI code can be mapped into a URI as defined in <xref target="RFC4152"/></td>
          </tr>
          <tr>
            <td align="left">removable</td>
            <td align="left">is-fru</td>
            <td align="left"> </td>
          </tr>
          <tr>
            <td align="left">oper-status</td>
            <td align="left"> </td>
            <td align="left">State data</td>
          </tr>
          <tr>
            <td align="left">empty</td>
            <td align="left"> </td>
            <td align="left">If there is no other component that refers to a holder as a parent, it can be considered empty</td>
          </tr>
          <tr>
            <td align="left">parent</td>
            <td align="left">parent-references</td>
            <td align="left"> </td>
          </tr>
          <tr>
            <td align="left">redundant-role</td>
            <td align="left"> </td>
            <td align="left">Functional information, may be part of a future augmentation</td>
          </tr>
          <tr>
            <td align="left">last-switchover-reason</td>
            <td align="left"> </td>
            <td align="left">State data</td>
          </tr>
          <tr>
            <td align="left">last-switchover-time</td>
            <td align="left"> </td>
            <td align="left">State data</td>
          </tr>
          <tr>
            <td align="left">last-reboot-reason</td>
            <td align="left"> </td>
            <td align="left">State data</td>
          </tr>
          <tr>
            <td align="left">last-reboot-time</td>
            <td align="left"> </td>
            <td align="left">State data</td>
          </tr>
          <tr>
            <td align="left">switchover-ready</td>
            <td align="left"> </td>
            <td align="left">State data</td>
          </tr>
          <tr>
            <td align="left">temperature</td>
            <td align="left"> </td>
            <td align="left">Performance data</td>
          </tr>
          <tr>
            <td align="left">memory</td>
            <td align="left"> </td>
            <td align="left">Performance data</td>
          </tr>
          <tr>
            <td align="left">allocated-power</td>
            <td align="left"> </td>
            <td align="left">State/performance data</td>
          </tr>
          <tr>
            <td align="left">used-power</td>
            <td align="left"> </td>
            <td align="left">State/performance data</td>
          </tr>
          <tr>
            <td align="left">pcie</td>
            <td align="left"> </td>
            <td align="left">Alarm data</td>
          </tr>
          <tr>
            <td align="left">properties</td>
            <td align="left"> </td>
            <td align="left">Generic properties can be handled as part of "description"</td>
          </tr>
          <tr>
            <td align="left">subcomponents</td>
            <td align="left"> </td>
            <td align="left"> </td>
          </tr>
        </tbody>
      </table>
      <t>As mentioned in <xref target="ne-component"/>, state data, performance data, and alarm data are out of scope of the data model defined in this document, and they should be defined in other data models separately. For the same reason some component specific structures in "openconfig-platform", like the one defined for fan, backplane, controller-card, etc., are considered out of scope since they provide specialized operational and alarm data for those components.</t>
      <t><xref target="tab-oc-hw"/> compares the identities derived from "oc-platform-type:OPENCONFIG_HARDWARE_COMPONENT" with those derived from "ianahw:hardware-class". This comparison highlights that the base network inventory model aligns with the OpenConfig Platform model also regarding hardware component "type"/"class" definition.</t>
      <table anchor="tab-oc-hw">
        <name>Comparison between openconfig-platform OPENCONFIG_HARDWARE_COMPONENT and IANA hardware-class derived identities</name>
        <thead>
          <tr>
            <th align="left">"oc-platform-type:OPENCONFIG_HARDWARE_COMPONENT"</th>
            <th align="left">"ianahw:hardware-class"</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">CHASSIS</td>
            <td align="left">chassis</td>
          </tr>
          <tr>
            <td align="left">BACKPLANE</td>
            <td align="left">backplane</td>
          </tr>
          <tr>
            <td align="left">FABRIC</td>
            <td align="left">module</td>
          </tr>
          <tr>
            <td align="left">POWER_SUPPLY</td>
            <td align="left">power-supply</td>
          </tr>
          <tr>
            <td align="left">FAN</td>
            <td align="left">fan</td>
          </tr>
          <tr>
            <td align="left">FAN_TRAY</td>
            <td align="left">module</td>
          </tr>
          <tr>
            <td align="left">FAN_TRAY_CONTROLLER</td>
            <td align="left">module</td>
          </tr>
          <tr>
            <td align="left">SENSOR</td>
            <td align="left">sensor</td>
          </tr>
          <tr>
            <td align="left">LINECARD</td>
            <td align="left">module</td>
          </tr>
          <tr>
            <td align="left">CONTROLLER_CARD</td>
            <td align="left">module</td>
          </tr>
          <tr>
            <td align="left">PORT</td>
            <td align="left">port</td>
          </tr>
          <tr>
            <td align="left">USB_PORT</td>
            <td align="left">port</td>
          </tr>
          <tr>
            <td align="left">TRANSCEIVER</td>
            <td align="left">module</td>
          </tr>
          <tr>
            <td align="left">CPU</td>
            <td align="left">cpu</td>
          </tr>
          <tr>
            <td align="left">STORAGE</td>
            <td align="left">storage-drive</td>
          </tr>
          <tr>
            <td align="left">INTEGRATED_CIRCUIT</td>
            <td align="left">module</td>
          </tr>
          <tr>
            <td align="left">WIFI_ACCESS_POINT</td>
            <td align="left">N/A (technology specific)</td>
          </tr>
          <tr>
            <td align="left">FPGA</td>
            <td align="left">module</td>
          </tr>
        </tbody>
      </table>
      <t>Overall, the analysis in this appendix confirms that the base network inventory YANG data model can be populated with data discovered from devices running OpenConfig.</t>
    </section>
    <section anchor="terminology-of-container">
      <name>Terminology of Container</name>
      <t>Within this document , term "container" represents an hardware component class capable of containing one or more removable physical entities, e.g., a slot in a chassis which is capabable to contain a board.</t>
      <table anchor="tab-term">
        <name>terminology mapping</name>
        <thead>
          <tr>
            <th align="left">terminology of IVY base model</th>
            <th align="left">terminology in other models</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">container</td>
            <td align="left">holder</td>
          </tr>
        </tbody>
      </table>
    </section>
    <section anchor="scalability">
      <name>Efficiency Issue</name>
      <t>During  the integration with OSS in some operators, some efficiency/scalability concerns have been discovered when synchronizing network inventory data for big networks. As outlined in <xref target="security"/>, these efficiency and scalability issues can pose security issues.</t>
      <t>While implementing NACM <xref target="RFC8341"/> and protocol-specific filtering mechanisms (e.g., RESTCONF filtering <xref target="RFC8040"/>) mitigates these efficiency and scalability concerns, full resolution may require further protocol enhancements beyond the scope of this document.</t>
      <t>Considering that relational databases are widely used by existing 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 this document, 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 networks. This scalability limitation is caused by the limited transmission capabilities of HTTP protocol. This scalability limitation should be solved at protocol level rather than data model level.</t>
      <t>The model proposed by this document is designed to be as generic as possible so as 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 the 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 necessary to augment a new component class and extend some specific attributes for this new inventory component class, which is more flexible.</t>
      <t>The main scope of this documento is to define the generic data model, enabling a flexible and backward compatible approach for other technologies. Solution description to efficiency/scalability limitations mentioned above is considered as out-of-scope.</t>
    </section>
    <section anchor="port-examples">
      <name>Examples of ports</name>
      <t>This appendix provides some examples of port implementations and how they can be modelled using the "ietf-network-inventory" module defined in <xref target="ni-yang"/>.</t>
      <t><xref target="fig-board"/> shows an example of a single board which contains three types of port:</t>
      <ol spacing="normal" type="1"><li>
          <t>An integrated port (non-pluggable);</t>
        </li>
        <li>
          <t>An empty port;</t>
        </li>
        <li>
          <t>A pluggable port</t>
        </li>
      </ol>
      <figure anchor="fig-board">
        <name>Example of a board with different types of ports</name>
        <artset>
          <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="400" width="456" viewBox="0 0 456 400" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 72,32 L 72,368" fill="none" stroke="black"/>
              <path d="M 104,128 L 104,208" fill="none" stroke="black"/>
              <path d="M 104,240 L 104,320" fill="none" stroke="black"/>
              <path d="M 128,256 L 128,304" fill="none" stroke="black"/>
              <path d="M 200,48 L 200,96" fill="none" stroke="black"/>
              <path d="M 224,264 L 224,296" fill="none" stroke="black"/>
              <path d="M 232,32 L 232,128" fill="none" stroke="black"/>
              <path d="M 232,208 L 232,240" fill="none" stroke="black"/>
              <path d="M 232,320 L 232,368" fill="none" stroke="black"/>
              <path d="M 256,256 L 256,304" fill="none" stroke="black"/>
              <path d="M 72,32 L 232,32" fill="none" stroke="black"/>
              <path d="M 200,48 L 232,48" fill="none" stroke="black"/>
              <path d="M 200,96 L 232,96" fill="none" stroke="black"/>
              <path d="M 104,128 L 232,128" fill="none" stroke="black"/>
              <path d="M 104,208 L 232,208" fill="none" stroke="black"/>
              <path d="M 104,240 L 232,240" fill="none" stroke="black"/>
              <path d="M 128,256 L 256,256" fill="none" stroke="black"/>
              <path d="M 128,304 L 256,304" fill="none" stroke="black"/>
              <path d="M 104,320 L 232,320" fill="none" stroke="black"/>
              <path d="M 72,368 L 232,368" fill="none" stroke="black"/>
              <g class="text">
                <text x="216" y="68">O</text>
                <text x="284" y="68">1)</text>
                <text x="352" y="68">Non-Pluggable</text>
                <text x="428" y="68">Port</text>
                <text x="216" y="84">O</text>
                <text x="348" y="84">(integrated)</text>
                <text x="284" y="148">2)</text>
                <text x="320" y="148">Empty</text>
                <text x="364" y="148">hole</text>
                <text x="412" y="148">(port)</text>
                <text x="20" y="164">Hole</text>
                <text x="52" y="164">#1</text>
                <text x="20" y="276">Hole</text>
                <text x="52" y="276">#2</text>
                <text x="240" y="276">O</text>
                <text x="284" y="276">3)</text>
                <text x="336" y="276">Pluggable</text>
                <text x="396" y="276">port</text>
                <text x="240" y="292">O</text>
                <text x="136" y="356">(SLOT</text>
                <text x="168" y="356">#</text>
                <text x="192" y="356">10)</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art"><![CDATA[
          +-------------------+
          |               +---+
          |               | O |     1) Non-Pluggable Port 
          |               | O |        (integrated)
          |               +---+
          |                   |
          |   +---------------+
          |   |                     2) Empty hole (port)
  Hole #1 |   |                
          |   |                     
          |   |                
          |   +---------------+
          |                   |
          |   +---------------+
          |   |  +---------------+
  Hole #2 |   |  |           | O |  3) Pluggable port
          |   |  |           | O |     
          |   |  +---------------+
          |   +---------------+
          |                   |
          |     (SLOT # 10)   |
          +-------------------+
]]></artwork>
        </artset>
      </figure>
      <section anchor="json-examples">
        <name>JSON Examples</name>
        <t>This appendix contains an example of an instance data tree in JSON encoding <xref target="RFC7951"/>, instantiating the "ietf-network-inventory" module to describe the three types of ports on a single board, as shown in <xref target="fig-board"/>.</t>
        <sourcecode type="json"><![CDATA[
=============== NOTE: '\' line wrapping per RFC 8792 ================

{
  "ietf-network-inventory:network-inventory": {
    "network-elements": {
      "network-element" : [
        {
          "ne-id": "NE-1",
          "description": "Network element example with fixed and \
                                                   pluggable ports.",
          "components": {
            "component": [
              {
                "component-id": "board-1",
                "class": "iana-hardware:module",
                "description": "Board example with fixed and \
                                                    pluggable ports."
              },
              {
                "component-id": "port-1",
                "class": "iana-hardware:port",
                "description": "Example of an integrated (non-\
                                                   pluggable) port.",
                "parent": [
                  "board-1"
                ],
                "parent-rel-pos": "1"
              },
              {
                "component-id": "port-2",
                "class": "iana-hardware:port",
                "description": "Example of an empty pluggable port.",
                "parent": [
                  "board-1"
                ],
                "parent-rel-pos": "2"
              },
              {
                "component-id": "port-3",
                "class": "iana-hardware:port",
                "description": "Example of a non-empty pluggable \
                                                              port.",
                "parent": [
                  "board-1"
                ],
                "parent-rel-pos": "3"
              },
              {
                "component-id": "transceiver-module-3",
                "class": "iana-hardware:module",
                "description": "Example of a pluggable module \
                                   plugged within a pluggable port.",
                "parent": [
                  "port-3"
                ],
                "is-fru": true
              }
            ]
          }
        }
      ]
    }
  }
}
]]></sourcecode>
      </section>
    </section>
    <section anchor="multi-chassis-examples">
      <name>Example of multi-chassis network elements</name>
      <t>This appendix provides some examples of multi-chassis network elements and how they can be modelled using the "ietf-network-inventory" module defined in <xref target="ni-yang"/>.</t>
      <t>Multi-chassis network elements are network elements comprised of two or more chassis interconnected, in principle, with any topology.</t>
      <t>Stacked switches are an example of multi-chassis which consist of multiple standalone switches that are interconnected through dedicated stack ports and cables and managed as a single logical unit. Stacked switches:</t>
      <ul spacing="normal">
        <li>
          <t>are connected using a daisy-chain or a ring topology</t>
        </li>
        <li>
          <t>are managed using a single IP Address</t>
        </li>
        <li>
          <t>require synchronized software-upgrade</t>
        </li>
        <li>
          <t>use Priority/MAC-Addr(s) to decide Main/Members selection and communication.</t>
        </li>
      </ul>
      <t><xref target="fig-daisy-chain-stacked"/> and <xref target="fig-ring-stacked"/> describe two examples of stacked switches with three switches (pizza boxes) connected in a daisy-chain or ring topology.</t>
      <figure anchor="fig-daisy-chain-stacked">
        <name>Example of stacked switches in a daisy chain topology</name>
        <artset>
          <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="528" width="360" viewBox="0 0 360 528" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 8,32 L 8,144" fill="none" stroke="black"/>
              <path d="M 8,192 L 8,304" fill="none" stroke="black"/>
              <path d="M 8,352 L 8,464" fill="none" stroke="black"/>
              <path d="M 272,48 L 272,128" fill="none" stroke="black"/>
              <path d="M 272,208 L 272,288" fill="none" stroke="black"/>
              <path d="M 272,368 L 272,448" fill="none" stroke="black"/>
              <path d="M 304,48 L 304,128" fill="none" stroke="black"/>
              <path d="M 304,208 L 304,288" fill="none" stroke="black"/>
              <path d="M 304,368 L 304,448" fill="none" stroke="black"/>
              <path d="M 320,32 L 320,104" fill="none" stroke="black"/>
              <path d="M 320,120 L 320,144" fill="none" stroke="black"/>
              <path d="M 320,192 L 320,216" fill="none" stroke="black"/>
              <path d="M 320,232 L 320,264" fill="none" stroke="black"/>
              <path d="M 320,280 L 320,304" fill="none" stroke="black"/>
              <path d="M 320,352 L 320,376" fill="none" stroke="black"/>
              <path d="M 320,392 L 320,464" fill="none" stroke="black"/>
              <path d="M 352,112 L 352,224" fill="none" stroke="black"/>
              <path d="M 352,272 L 352,384" fill="none" stroke="black"/>
              <path d="M 8,32 L 320,32" fill="none" stroke="black"/>
              <path d="M 272,48 L 304,48" fill="none" stroke="black"/>
              <path d="M 272,80 L 304,80" fill="none" stroke="black"/>
              <path d="M 272,96 L 304,96" fill="none" stroke="black"/>
              <path d="M 312,112 L 352,112" fill="none" stroke="black"/>
              <path d="M 272,128 L 304,128" fill="none" stroke="black"/>
              <path d="M 8,144 L 320,144" fill="none" stroke="black"/>
              <path d="M 8,192 L 320,192" fill="none" stroke="black"/>
              <path d="M 272,208 L 304,208" fill="none" stroke="black"/>
              <path d="M 312,224 L 352,224" fill="none" stroke="black"/>
              <path d="M 272,240 L 304,240" fill="none" stroke="black"/>
              <path d="M 272,256 L 304,256" fill="none" stroke="black"/>
              <path d="M 312,272 L 352,272" fill="none" stroke="black"/>
              <path d="M 272,288 L 304,288" fill="none" stroke="black"/>
              <path d="M 8,304 L 320,304" fill="none" stroke="black"/>
              <path d="M 8,352 L 320,352" fill="none" stroke="black"/>
              <path d="M 272,368 L 304,368" fill="none" stroke="black"/>
              <path d="M 312,384 L 352,384" fill="none" stroke="black"/>
              <path d="M 272,400 L 304,400" fill="none" stroke="black"/>
              <path d="M 272,416 L 304,416" fill="none" stroke="black"/>
              <path d="M 272,448 L 304,448" fill="none" stroke="black"/>
              <path d="M 8,464 L 320,464" fill="none" stroke="black"/>
              <polygon class="arrowhead" points="320,384 308,378.4 308,389.6" fill="black" transform="rotate(180,312,384)"/>
              <polygon class="arrowhead" points="320,272 308,266.4 308,277.6" fill="black" transform="rotate(180,312,272)"/>
              <polygon class="arrowhead" points="320,224 308,218.4 308,229.6" fill="black" transform="rotate(180,312,224)"/>
              <polygon class="arrowhead" points="320,112 308,106.4 308,117.6" fill="black" transform="rotate(180,312,112)"/>
              <g class="text">
                <text x="288" y="68">1</text>
                <text x="104" y="84">Chassis</text>
                <text x="144" y="84">1</text>
                <text x="288" y="116">2</text>
                <text x="288" y="228">1</text>
                <text x="104" y="244">Chassis</text>
                <text x="144" y="244">2</text>
                <text x="288" y="276">2</text>
                <text x="288" y="388">1</text>
                <text x="104" y="404">Chassis</text>
                <text x="144" y="404">3</text>
                <text x="288" y="436">2</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art"><![CDATA[
    +--------------------------------------+
    |                                +---+ |
    |                                | 1 | |
    |        Chassis 1               +---+ |
    |                                +---+ |
    |                                | 2 |<----+
    |                                +---+ |   |
    +--------------------------------------+   |
                                               |
                                               |
    +--------------------------------------+   |
    |                                +---+ |   |
    |                                | 1 |<----+
    |        Chassis 2               +---+ |
    |                                +---+ |
    |                                | 2 |<----+
    |                                +---+ |   |
    +--------------------------------------+   |
                                               |
                                               |
    +--------------------------------------+   |
    |                                +---+ |   |
    |                                | 1 |<----+
    |        Chassis 3               +---+ |
    |                                +---+ |
    |                                | 2 | |
    |                                +---+ |
    +--------------------------------------+

    
]]></artwork>
        </artset>
      </figure>
      <figure anchor="fig-ring-stacked">
        <name>Example of stacked switches in a ring topology</name>
        <artset>
          <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="512" width="400" viewBox="0 0 400 512" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 8,48 L 8,160" fill="none" stroke="black"/>
              <path d="M 8,208 L 8,320" fill="none" stroke="black"/>
              <path d="M 8,368 L 8,480" fill="none" stroke="black"/>
              <path d="M 272,64 L 272,144" fill="none" stroke="black"/>
              <path d="M 272,224 L 272,304" fill="none" stroke="black"/>
              <path d="M 272,384 L 272,464" fill="none" stroke="black"/>
              <path d="M 304,64 L 304,144" fill="none" stroke="black"/>
              <path d="M 304,224 L 304,304" fill="none" stroke="black"/>
              <path d="M 304,384 L 304,464" fill="none" stroke="black"/>
              <path d="M 320,48 L 320,72" fill="none" stroke="black"/>
              <path d="M 320,88 L 320,120" fill="none" stroke="black"/>
              <path d="M 320,136 L 320,160" fill="none" stroke="black"/>
              <path d="M 320,208 L 320,232" fill="none" stroke="black"/>
              <path d="M 320,248 L 320,280" fill="none" stroke="black"/>
              <path d="M 320,296 L 320,320" fill="none" stroke="black"/>
              <path d="M 320,368 L 320,392" fill="none" stroke="black"/>
              <path d="M 320,408 L 320,440" fill="none" stroke="black"/>
              <path d="M 320,456 L 320,480" fill="none" stroke="black"/>
              <path d="M 352,128 L 352,240" fill="none" stroke="black"/>
              <path d="M 352,288 L 352,400" fill="none" stroke="black"/>
              <path d="M 392,80 L 392,448" fill="none" stroke="black"/>
              <path d="M 8,48 L 320,48" fill="none" stroke="black"/>
              <path d="M 272,64 L 304,64" fill="none" stroke="black"/>
              <path d="M 312,80 L 392,80" fill="none" stroke="black"/>
              <path d="M 272,96 L 304,96" fill="none" stroke="black"/>
              <path d="M 272,112 L 304,112" fill="none" stroke="black"/>
              <path d="M 312,128 L 352,128" fill="none" stroke="black"/>
              <path d="M 272,144 L 304,144" fill="none" stroke="black"/>
              <path d="M 8,160 L 320,160" fill="none" stroke="black"/>
              <path d="M 8,208 L 320,208" fill="none" stroke="black"/>
              <path d="M 272,224 L 304,224" fill="none" stroke="black"/>
              <path d="M 312,240 L 352,240" fill="none" stroke="black"/>
              <path d="M 272,256 L 304,256" fill="none" stroke="black"/>
              <path d="M 272,272 L 304,272" fill="none" stroke="black"/>
              <path d="M 312,288 L 352,288" fill="none" stroke="black"/>
              <path d="M 272,304 L 304,304" fill="none" stroke="black"/>
              <path d="M 8,320 L 320,320" fill="none" stroke="black"/>
              <path d="M 8,368 L 320,368" fill="none" stroke="black"/>
              <path d="M 272,384 L 304,384" fill="none" stroke="black"/>
              <path d="M 312,400 L 352,400" fill="none" stroke="black"/>
              <path d="M 272,416 L 304,416" fill="none" stroke="black"/>
              <path d="M 272,432 L 304,432" fill="none" stroke="black"/>
              <path d="M 312,448 L 392,448" fill="none" stroke="black"/>
              <path d="M 272,464 L 304,464" fill="none" stroke="black"/>
              <path d="M 8,480 L 320,480" fill="none" stroke="black"/>
              <polygon class="arrowhead" points="320,448 308,442.4 308,453.6" fill="black" transform="rotate(180,312,448)"/>
              <polygon class="arrowhead" points="320,400 308,394.4 308,405.6" fill="black" transform="rotate(180,312,400)"/>
              <polygon class="arrowhead" points="320,288 308,282.4 308,293.6" fill="black" transform="rotate(180,312,288)"/>
              <polygon class="arrowhead" points="320,240 308,234.4 308,245.6" fill="black" transform="rotate(180,312,240)"/>
              <polygon class="arrowhead" points="320,128 308,122.4 308,133.6" fill="black" transform="rotate(180,312,128)"/>
              <polygon class="arrowhead" points="320,80 308,74.4 308,85.6" fill="black" transform="rotate(180,312,80)"/>
              <g class="text">
                <text x="288" y="84">1</text>
                <text x="104" y="100">Chassis</text>
                <text x="144" y="100">1</text>
                <text x="288" y="132">2</text>
                <text x="288" y="244">1</text>
                <text x="104" y="260">Chassis</text>
                <text x="144" y="260">2</text>
                <text x="288" y="292">2</text>
                <text x="288" y="404">1</text>
                <text x="104" y="420">Chassis</text>
                <text x="144" y="420">3</text>
                <text x="288" y="452">2</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art"><![CDATA[

    +--------------------------------------+
    |                                +---+ |
    |                                | 1 |<---------+
    |        Chassis 1               +---+ |        |
    |                                +---+ |        |
    |                                | 2 |<----+    |
    |                                +---+ |   |    |
    +--------------------------------------+   |    |
                                               |    |
                                               |    |
    +--------------------------------------+   |    |
    |                                +---+ |   |    |
    |                                | 1 |<----+    |
    |        Chassis 2               +---+ |        |
    |                                +---+ |        |
    |                                | 2 |<----+    |
    |                                +---+ |   |    |
    +--------------------------------------+   |    |
                                               |    |
                                               |    |
    +--------------------------------------+   |    |
    |                                +---+ |   |    |
    |                                | 1 |<----+    |
    |        Chassis 3               +---+ |        |
    |                                +---+ |        |
    |                                | 2 |<---------+
    |                                +---+ |
    +--------------------------------------+
]]></artwork>
        </artset>
      </figure>
      <t>Using the base network inventory YANG data model, each stackable switch can be modelled as a chassis within the same network element, which models the stacked switches. The stack ports are modelled like other ports. The stack cables are not reported using the base network inventory YANG data model but can be reported using the passive network inventory YANG data model under definition in <xref target="I-D.ygb-ivy-passive-network-inventory"/>.</t>
      <t>Cascaded switches are another example of multi-chassis which consist of multiple standalone switches that are interconnected and managed as a single logical unit. Cascaded switches:</t>
      <ul spacing="normal">
        <li>
          <t>are usually connected in a tree topology</t>
        </li>
        <li>
          <t>are managed using a single IP Address</t>
        </li>
        <li>
          <t>the root of the tree is configured as Main.</t>
        </li>
      </ul>
      <t><xref target="fig-tree-cascaded"/> describe an example of cascaded switches with three chassis connected in a tree topology.</t>
      <figure anchor="fig-tree-cascaded">
        <name>Example of cascaded switches in a tree topology</name>
        <artset>
          <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="752" width="488" viewBox="0 0 488 752" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 8,144 L 8,464" fill="none" stroke="black"/>
              <path d="M 32,384 L 32,456" fill="none" stroke="black"/>
              <path d="M 32,472 L 32,528" fill="none" stroke="black"/>
              <path d="M 56,32 L 56,128" fill="none" stroke="black"/>
              <path d="M 56,160 L 56,336" fill="none" stroke="black"/>
              <path d="M 64,64 L 64,96" fill="none" stroke="black"/>
              <path d="M 64,128 L 64,160" fill="none" stroke="black"/>
              <path d="M 64,288 L 64,320" fill="none" stroke="black"/>
              <path d="M 72,448 L 72,480" fill="none" stroke="black"/>
              <path d="M 80,392 L 80,520" fill="none" stroke="black"/>
              <path d="M 96,64 L 96,96" fill="none" stroke="black"/>
              <path d="M 96,128 L 96,160" fill="none" stroke="black"/>
              <path d="M 96,288 L 96,320" fill="none" stroke="black"/>
              <path d="M 104,40 L 104,328" fill="none" stroke="black"/>
              <path d="M 200,576 L 200,720" fill="none" stroke="black"/>
              <path d="M 240,392 L 240,520" fill="none" stroke="black"/>
              <path d="M 248,584 L 248,712" fill="none" stroke="black"/>
              <path d="M 264,40 L 264,328" fill="none" stroke="black"/>
              <path d="M 288,384 L 288,528" fill="none" stroke="black"/>
              <path d="M 312,40 L 312,328" fill="none" stroke="black"/>
              <path d="M 384,40 L 384,328" fill="none" stroke="black"/>
              <path d="M 392,64 L 392,96" fill="none" stroke="black"/>
              <path d="M 392,192 L 392,224" fill="none" stroke="black"/>
              <path d="M 392,288 L 392,320" fill="none" stroke="black"/>
              <path d="M 408,584 L 408,712" fill="none" stroke="black"/>
              <path d="M 416,656 L 416,688" fill="none" stroke="black"/>
              <path d="M 424,64 L 424,96" fill="none" stroke="black"/>
              <path d="M 424,192 L 424,224" fill="none" stroke="black"/>
              <path d="M 424,288 L 424,320" fill="none" stroke="black"/>
              <path d="M 432,32 L 432,192" fill="none" stroke="black"/>
              <path d="M 432,224 L 432,336" fill="none" stroke="black"/>
              <path d="M 448,656 L 448,688" fill="none" stroke="black"/>
              <path d="M 456,576 L 456,656" fill="none" stroke="black"/>
              <path d="M 456,688 L 456,720" fill="none" stroke="black"/>
              <path d="M 480,208 L 480,672" fill="none" stroke="black"/>
              <path d="M 56,32 L 432,32" fill="none" stroke="black"/>
              <path d="M 72,64 L 88,64" fill="none" stroke="black"/>
              <path d="M 400,64 L 416,64" fill="none" stroke="black"/>
              <path d="M 72,96 L 88,96" fill="none" stroke="black"/>
              <path d="M 400,96 L 416,96" fill="none" stroke="black"/>
              <path d="M 72,128 L 88,128" fill="none" stroke="black"/>
              <path d="M 8,144 L 56,144" fill="none" stroke="black"/>
              <path d="M 72,160 L 88,160" fill="none" stroke="black"/>
              <path d="M 400,192 L 416,192" fill="none" stroke="black"/>
              <path d="M 432,208 L 480,208" fill="none" stroke="black"/>
              <path d="M 400,224 L 416,224" fill="none" stroke="black"/>
              <path d="M 72,288 L 88,288" fill="none" stroke="black"/>
              <path d="M 400,288 L 416,288" fill="none" stroke="black"/>
              <path d="M 72,320 L 88,320" fill="none" stroke="black"/>
              <path d="M 400,320 L 416,320" fill="none" stroke="black"/>
              <path d="M 56,336 L 432,336" fill="none" stroke="black"/>
              <path d="M 32,384 L 288,384" fill="none" stroke="black"/>
              <path d="M 48,448 L 64,448" fill="none" stroke="black"/>
              <path d="M 8,464 L 40,464" fill="none" stroke="black"/>
              <path d="M 48,480 L 64,480" fill="none" stroke="black"/>
              <path d="M 32,528 L 288,528" fill="none" stroke="black"/>
              <path d="M 200,576 L 456,576" fill="none" stroke="black"/>
              <path d="M 424,656 L 440,656" fill="none" stroke="black"/>
              <path d="M 456,672 L 480,672" fill="none" stroke="black"/>
              <path d="M 424,688 L 440,688" fill="none" stroke="black"/>
              <path d="M 200,720 L 456,720" fill="none" stroke="black"/>
              <path d="M 72,64 C 63.16936,64 56,71.16936 56,80" fill="none" stroke="black"/>
              <path d="M 72,64 C 63.16936,64 56,56.83064 56,48" fill="none" stroke="black"/>
              <path d="M 88,64 C 96.83064,64 104,71.16936 104,80" fill="none" stroke="black"/>
              <path d="M 88,64 C 96.83064,64 104,56.83064 104,48" fill="none" stroke="black"/>
              <path d="M 400,64 C 391.16936,64 384,71.16936 384,80" fill="none" stroke="black"/>
              <path d="M 400,64 C 391.16936,64 384,56.83064 384,48" fill="none" stroke="black"/>
              <path d="M 416,64 C 424.83064,64 432,71.16936 432,80" fill="none" stroke="black"/>
              <path d="M 416,64 C 424.83064,64 432,56.83064 432,48" fill="none" stroke="black"/>
              <path d="M 72,96 C 63.16936,96 56,103.16936 56,112" fill="none" stroke="black"/>
              <path d="M 72,96 C 63.16936,96 56,88.83064 56,80" fill="none" stroke="black"/>
              <path d="M 88,96 C 96.83064,96 104,103.16936 104,112" fill="none" stroke="black"/>
              <path d="M 88,96 C 96.83064,96 104,88.83064 104,80" fill="none" stroke="black"/>
              <path d="M 400,96 C 391.16936,96 384,103.16936 384,112" fill="none" stroke="black"/>
              <path d="M 400,96 C 391.16936,96 384,88.83064 384,80" fill="none" stroke="black"/>
              <path d="M 416,96 C 424.83064,96 432,103.16936 432,112" fill="none" stroke="black"/>
              <path d="M 416,96 C 424.83064,96 432,88.83064 432,80" fill="none" stroke="black"/>
              <path d="M 72,128 C 63.16936,128 56,120.83064 56,112" fill="none" stroke="black"/>
              <path d="M 88,128 C 96.83064,128 104,135.16936 104,144" fill="none" stroke="black"/>
              <path d="M 88,128 C 96.83064,128 104,120.83064 104,112" fill="none" stroke="black"/>
              <path d="M 72,160 C 63.16936,160 56,167.16936 56,176" fill="none" stroke="black"/>
              <path d="M 88,160 C 96.83064,160 104,167.16936 104,176" fill="none" stroke="black"/>
              <path d="M 88,160 C 96.83064,160 104,152.83064 104,144" fill="none" stroke="black"/>
              <path d="M 400,192 C 391.16936,192 384,199.16936 384,208" fill="none" stroke="black"/>
              <path d="M 400,192 C 391.16936,192 384,184.83064 384,176" fill="none" stroke="black"/>
              <path d="M 416,192 C 424.83064,192 432,184.83064 432,176" fill="none" stroke="black"/>
              <path d="M 400,224 C 391.16936,224 384,231.16936 384,240" fill="none" stroke="black"/>
              <path d="M 400,224 C 391.16936,224 384,216.83064 384,208" fill="none" stroke="black"/>
              <path d="M 416,224 C 424.83064,224 432,231.16936 432,240" fill="none" stroke="black"/>
              <path d="M 72,288 C 63.16936,288 56,295.16936 56,304" fill="none" stroke="black"/>
              <path d="M 72,288 C 63.16936,288 56,280.83064 56,272" fill="none" stroke="black"/>
              <path d="M 88,288 C 96.83064,288 104,295.16936 104,304" fill="none" stroke="black"/>
              <path d="M 88,288 C 96.83064,288 104,280.83064 104,272" fill="none" stroke="black"/>
              <path d="M 400,288 C 391.16936,288 384,295.16936 384,304" fill="none" stroke="black"/>
              <path d="M 400,288 C 391.16936,288 384,280.83064 384,272" fill="none" stroke="black"/>
              <path d="M 416,288 C 424.83064,288 432,295.16936 432,304" fill="none" stroke="black"/>
              <path d="M 416,288 C 424.83064,288 432,280.83064 432,272" fill="none" stroke="black"/>
              <path d="M 72,320 C 63.16936,320 56,327.16936 56,336" fill="none" stroke="black"/>
              <path d="M 72,320 C 63.16936,320 56,312.83064 56,304" fill="none" stroke="black"/>
              <path d="M 88,320 C 96.83064,320 104,312.83064 104,304" fill="none" stroke="black"/>
              <path d="M 400,320 C 391.16936,320 384,312.83064 384,304" fill="none" stroke="black"/>
              <path d="M 416,320 C 424.83064,320 432,327.16936 432,336" fill="none" stroke="black"/>
              <path d="M 416,320 C 424.83064,320 432,312.83064 432,304" fill="none" stroke="black"/>
              <path d="M 48,448 C 39.16936,448 32,440.83064 32,432" fill="none" stroke="black"/>
              <path d="M 64,448 C 72.83064,448 80,455.16936 80,464" fill="none" stroke="black"/>
              <path d="M 64,448 C 72.83064,448 80,440.83064 80,432" fill="none" stroke="black"/>
              <path d="M 48,480 C 39.16936,480 32,487.16936 32,496" fill="none" stroke="black"/>
              <path d="M 64,480 C 72.83064,480 80,487.16936 80,496" fill="none" stroke="black"/>
              <path d="M 64,480 C 72.83064,480 80,472.83064 80,464" fill="none" stroke="black"/>
              <path d="M 424,656 C 415.16936,656 408,663.16936 408,672" fill="none" stroke="black"/>
              <path d="M 424,656 C 415.16936,656 408,648.83064 408,640" fill="none" stroke="black"/>
              <path d="M 440,656 C 448.83064,656 456,648.83064 456,640" fill="none" stroke="black"/>
              <path d="M 424,688 C 415.16936,688 408,695.16936 408,704" fill="none" stroke="black"/>
              <path d="M 424,688 C 415.16936,688 408,680.83064 408,672" fill="none" stroke="black"/>
              <path d="M 440,688 C 448.83064,688 456,695.16936 456,704" fill="none" stroke="black"/>
              <polygon class="arrowhead" points="464,672 452,666.4 452,677.6" fill="black" transform="rotate(180,456,672)"/>
              <polygon class="arrowhead" points="440,208 428,202.4 428,213.6" fill="black" transform="rotate(180,432,208)"/>
              <polygon class="arrowhead" points="64,144 52,138.4 52,149.6" fill="black" transform="rotate(0,56,144)"/>
              <polygon class="arrowhead" points="48,464 36,458.4 36,469.6" fill="black" transform="rotate(0,40,464)"/>
              <g class="text">
                <text x="84" y="52">S1</text>
                <text x="168" y="52">Chassis</text>
                <text x="208" y="52">1</text>
                <text x="288" y="52">S20</text>
                <text x="408" y="52">S32</text>
                <text x="80" y="84">1</text>
                <text x="408" y="84">1</text>
                <text x="80" y="116">...</text>
                <text x="80" y="148">4</text>
                <text x="408" y="148">...</text>
                <text x="168" y="212">...</text>
                <text x="352" y="212">...</text>
                <text x="408" y="212">6</text>
                <text x="80" y="228">...</text>
                <text x="408" y="260">...</text>
                <text x="76" y="308">10</text>
                <text x="404" y="308">10</text>
                <text x="60" y="404">S1</text>
                <text x="152" y="404">Chassis</text>
                <text x="192" y="404">2</text>
                <text x="264" y="404">S16</text>
                <text x="56" y="468">5</text>
                <text x="228" y="596">S1</text>
                <text x="320" y="596">Chassis</text>
                <text x="360" y="596">3</text>
                <text x="432" y="596">S16</text>
                <text x="432" y="676">7</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art"><![CDATA[
        +----------------------------------------------+
        |  S1 |    Chassis 1      | S20 |        | S32 |
        |+---+|                   |     |        |+---+|
        || 1 ||                   |     |        || 1 ||
        |+---+|                   |     |        |+---+|
        | ... |                   |     |        |     |
        |+---+|                   |     |        |     |
  +----->| 4 ||                   |     |        | ... |
  |     |+---+|                   |     |        |     |
  |     |     |                   |     |        |     |
  |     |     |                   |     |        |+---+|
  |     |     |      ...          |     |   ...  || 6 |<-----+
  |     | ... |                   |     |        |+---+|     |
  |     |     |                   |     |        |     |     |
  |     |     |                   |     |        | ... |     |
  |     |     |                   |     |        |     |     |
  |     |+---+|                   |     |        |+---+|     |
  |     ||10 ||                   |     |        ||10 ||     |
  |     |+---+|                   |     |        |+---+|     |
  |     +----------------------------------------------+     |
  |                                                          |
  |                                                          |
  |  +-------------------------------+                       |
  |  |  S1 |     Chassis 2     | S16 |                       |
  |  |     |                   |     |                       |
  |  |     |                   |     |                       |
  |  |+---+|                   |     |                       |
  +---> 5 ||                   |     |                       |
     |+---+|                   |     |                       |
     |     |                   |     |                       |
     |     |                   |     |                       |
     +-------------------------------+                       |
                                                             |
                                                             |
                          +-------------------------------+  |
                          |  S1 |     Chassis 3     | S16 |  |
                          |     |                   |     |  |
                          |     |                   |     |  |
                          |     |                   |     |  |
                          |     |                   |+---+|  |
                          |     |                   || 7 |<--+
                          |     |                   |+---+|
                          |     |                   |     |
                          +-------------------------------+
]]></artwork>
        </artset>
      </figure>
      <t>Using the base network inventory YANG data model, each interconnected switch is modelled as a chassis component of the same network element. The ports used to interconnect these switches are normal (traffic) ports and modelled like other ports. The interconnecting cables are not reported using the base network inventory YANG data model but can be reported using the passive network inventory model under definition in <xref target="I-D.ygb-ivy-passive-network-inventory"/>.</t>
      <section anchor="json-examples-1">
        <name>JSON Examples</name>
        <t>This appendix contains an example of an instance data tree in JSON encoding <xref target="RFC7951"/>, instantiating the "ietf-network-inventory" model to describe the three examples of multi-chassis NEs, as shown in <xref target="fig-daisy-chain-stacked"/>, <xref target="fig-ring-stacked"/> and <xref target="fig-tree-cascaded"/>.</t>
        <ul empty="true">
          <li>
            <t>Note: the base inventory model allows reporting only the chassis and ports configuration. Reporting the link between the chassis of the same NE is outside the scope of the base inventory model. The YANG data model under definition in <xref target="I-D.ygb-ivy-passive-network-inventory"/> as an augmentation of the base inventory YANG data model can be used to provide this additional information.</t>
          </li>
        </ul>
        <sourcecode type="json"><![CDATA[
=============== NOTE: '\' line wrapping per RFC 8792 ================

{
  "ietf-network-inventory:network-inventory": {
    "network-elements": {
      "network-element" : [
        {
          "ne-id": "NE-1",
          "description": "Stack Switch in a daisy chain topology.",
          "components": {
            "component": [
              {
                "component-id": "chassis-1",
                "class": "iana-hardware:chassis",
                "description": "First switch of the stack.",
                "parent-rel-pos": "1",
                "is-fru": true
              },
              {
                "component-id": "port-1-1",
                "class": "iana-hardware:port",
                "description": "First stack port of the first \
                                               switch in the stack.",
                "parent": [
                  "chassis-1"
                ],
                "parent-rel-pos": "1"
              },
              {
                "component-id": "port-1-2",
                "class": "iana-hardware:port",
                "description": "Second stack port of the first \
                                               switch in the stack.",
                "parent": [
                  "chassis-1"
                ],
                "parent-rel-pos": "2"
              },
              {
                "component-id": "transceiver-module-1-2",
                "class": "iana-hardware:module",
                "description": "Transceiver module plugged in the \
                second stack port of the first switch in the stack.",
                "parent": [
                  "port-1-2"
                ],
                "is-fru": true
              },
              {
                "component-id": "chassis-2",
                "class": "iana-hardware:chassis",
                "description": "Second switch of the stack.",
                "parent-rel-pos": "2",
                "is-fru": true
              },
              {
                "component-id": "port-2-1",
                "class": "iana-hardware:port",
                "description": "First stack port of the second \
                                               switch in the stack.",
                "parent": [
                  "chassis-2"
                ],
                "parent-rel-pos": "1"
              },
              {
                "component-id": "transceiver-module-2-1",
                "class": "iana-hardware:module",
                "description": "Transceiver module plugged in the \
                 first stack port of the first switch in the stack.",
                "parent": [
                  "port-2-1"
                ],
                "is-fru": true
              },
              {
                "component-id": "port-2-2",
                "class": "iana-hardware:port",
                "description": "Second stack port of the second \
                                               switch in the stack.",
                "parent": [
                  "chassis-2"
                ],
                "parent-rel-pos": "2"
              },
              {
                "component-id": "transceiver-module-2-2",
                "class": "iana-hardware:module",
                "description": "Transceiver module plugged in the \
                second stack port of the first switch in the stack.",
                "parent": [
                  "port-2-2"
                ],
                "is-fru": true
              },
              {
                "component-id": "chassis-3",
                "class": "iana-hardware:chassis",
                "description": "Third switch of the stack.",
                "parent-rel-pos": "3",
                "is-fru": true
              },
              {
                "component-id": "port-3-1",
                "class": "iana-hardware:port",
                "description": "First stack port of the third \
                                               switch in the stack.",
                "parent": [
                  "chassis-3"
                ],
                "parent-rel-pos": "1"
              },
              {
                "component-id": "transceiver-module-3-1",
                "class": "iana-hardware:module",
                "description": "Transceiver module plugged in the \
                 first stack port of the third switch in the stack.",
                "parent": [
                  "port-3-1"
                ],
                "is-fru": true
              },
              {
                "component-id": "port-3-2",
                "class": "iana-hardware:port",
                "description": "Second stack port of the second \
                                               switch in the stack.",
                "parent": [
                  "chassis-3"
                ],
                "parent-rel-pos": "2"
              }
            ]
          }
        },
        {
          "ne-id": "NE-2",
          "description": "Stack Switch in a ring topology.",
          "components": {
            "component": [
              {
                "component-id": "chassis-1",
                "class": "iana-hardware:chassis",
                "description": "First switch of the stack.",
                "parent-rel-pos": "1",
                "is-fru": true
              },
              {
                "component-id": "port-1-1",
                "class": "iana-hardware:port",
                "description": "First stack port of the first \
                                               switch in the stack.",
                "parent": [
                  "chassis-1"
                ],
                "parent-rel-pos": "1"
              },
              {
                "component-id": "transceiver-module-1-1",
                "class": "iana-hardware:module",
                "description": "Transceiver module plugged in the \
                 first stack port of the first switch in the stack.",
                "parent": [
                  "port-1-1"
                ],
                "is-fru": true
              },
              {
                "component-id": "port-1-2",
                "class": "iana-hardware:port",
                "description": "Second stack port of the first \
                                               switch in the stack.",
                "parent": [
                  "chassis-1"
                ],
                "parent-rel-pos": "2"
              },
              {
                "component-id": "transceiver-module-1-2",
                "class": "iana-hardware:module",
                "description": "Transceiver module plugged in the \
                second stack port of the first switch in the stack.",
                "parent": [
                  "port-1-2"
                ],
                "is-fru": true
              },
              {
                "component-id": "chassis-2",
                "class": "iana-hardware:chassis",
                "description": "Second switch of the stack.",
                "parent-rel-pos": "2",
                "is-fru": true
              },
              {
                "component-id": "port-2-1",
                "class": "iana-hardware:port",
                "description": "First stack port of the second \
                                               switch in the stack.",
                "parent": [
                  "chassis-2"
                ],
                "parent-rel-pos": "1"
              },
              {
                "component-id": "transceiver-module-2-1",
                "class": "iana-hardware:module",
                "description": "Transceiver module plugged in the \
                first stack port of the second switch in the stack.",
                "parent": [
                  "port-2-1"
                ],
                "is-fru": true
              },
              {
                "component-id": "port-2-2",
                "class": "iana-hardware:port",
                "description": "Second stack port of the second \
                                               switch in the stack.",
                "parent": [
                  "chassis-2"
                ],
                "parent-rel-pos": "2"
              },
              {
                "component-id": "transceiver-module-2-2",
                "class": "iana-hardware:module",
                "description": "Transceiver module plugged in the \
               second stack port of the second switch in the stack.",
                "parent": [
                  "port-2-2"
                ],
                "is-fru": true
              },
              {
                "component-id": "chassis-3",
                "class": "iana-hardware:chassis",
                "description": "Third switch of the stack.",
                "parent-rel-pos": "3",
                "is-fru": true
              },
              {
                "component-id": "port-3-1",
                "class": "iana-hardware:port",
                "description": "First stack port of the third \
                                               switch in the stack.",
                "parent": [
                  "chassis-3"
                ],
                "parent-rel-pos": "1"
              },
              {
                "component-id": "transceiver-module-3-1",
                "class": "iana-hardware:module",
                "description": "Transceiver module plugged in the \
                 first stack port of the third switch in the stack.",
                "parent": [
                  "port-3-1"
                ],
                "is-fru": true
              },
              {
                "component-id": "port-3-2",
                "class": "iana-hardware:port",
                "description": "Second stack port of the third \
                                               switch in the stack.",
                "parent": [
                  "chassis-3"
                ],
                "parent-rel-pos": "2"
              },
              {
                "component-id": "transceiver-module-3-2",
                "class": "iana-hardware:module",
                "description": "Transceiver module plugged in the \
                second stack port of the third switch in the stack.",
                "parent": [
                  "port-3-2"
                ],
                "is-fru": true
              }
            ]
          }
        },
        {
          "ne-id": "NE-3",
          "description": "Cascaded Switch in a tree topology.",
          "components": {
            "component": [
              {
                "component-id": "chassis-1",
                "class": "iana-hardware:chassis",
                "description": "First chassis of the cascaded switch\
                                                                  .",
                "parent-rel-pos": "1",
                "is-fru": true
              },
              {
                "component-id": "slot-1-1",
                "class": "iana-hardware:container",
                "description": "Slot 1 of the first chassis of the \
                                                   cascaded switch.",
                "parent": [
                  "chassis-1"
                ],
                "parent-rel-pos": "1"
              },
              {
                "component-id": "card-1-1",
                "class": "iana-hardware:module",
                "description": "Card plugged into slot 1 of the \
                              first chassis of the cascaded switch.",
                "parent": [
                  "slot-1-1"
                ],
                "is-fru": true
              },
              {
                "component-id": "port-1-1-1",
                "class": "iana-hardware:port",
                "description": "Empty port 1 on the card plugged \
           into slot 1 of the first chassis of the cascaded switch.",
                "parent": [
                  "card-1-1"
                ],
                "parent-rel-pos": "1"
              },
              {
                "component-id": "port-1-1-4",
                "class": "iana-hardware:port",
                "description": "Pluggable port 4 on the card \
   plugged into slot 1 of the first chassis of the cascaded switch.",
                "parent": [
                  "card-1-1"
                ],
                "parent-rel-pos": "4"
              },
              {
                "component-id": "transceiver-module-1-1-4",
                "class": "iana-hardware:module",
                "description": "Transceiver module plugged in port \
4 on the card plugged into slot 1 of the first chassis of the \
                                                   cascaded switch.",
                "parent": [
                  "port-1-1-4"
                ],
                "is-fru": true
              },
              {
                "component-id": "port-1-1-10",
                "class": "iana-hardware:port",
                "description": "Empty port 10 on the card plugged \
           into slot 1 of the first chassis of the cascaded switch.",
                "parent": [
                  "card-1-1"
                ],
                "parent-rel-pos": "10"
              },
              {
                "component-id": "slot-1-20",
                "class": "iana-hardware:container",
                "description": "Empty slot 20 of the first chassis \
                                            of the cascaded switch.",
                "parent": [
                  "chassis-1"
                ],
                "parent-rel-pos": "20"
              },
              {
                "component-id": "slot-1-32",
                "class": "iana-hardware:container",
                "description": "Slot 32 of the first chassis of the \
                                                   cascaded switch.",
                "parent": [
                  "chassis-1"
                ],
                "parent-rel-pos": "32"
              },
              {
                "component-id": "card-1-32",
                "class": "iana-hardware:module",
                "description": "Card plugged into slot 32 of the \
                              first chassis of the cascaded switch.",
                "parent": [
                  "slot-1-32"
                ],
                "is-fru": true
              },
              {
                "component-id": "port-1-32-1",
                "class": "iana-hardware:port",
                "description": "Empty port 1 on the card plugged \
          into slot 32 of the first chassis of the cascaded switch.",
                "parent": [
                  "card-1-32"
                ],
                "parent-rel-pos": "1"
              },
              {
                "component-id": "port-1-32-6",
                "class": "iana-hardware:port",
                "description": "Pluggable port 6 on the card \
  plugged into slot 32 of the first chassis of the cascaded switch.",
                "parent": [
                  "card-1-32"
                ],
                "parent-rel-pos": "6"
              },
              {
                "component-id": "transceiver-module-1-32-6",
                "class": "iana-hardware:module",
                "description": "Transceiver module plugged in port \
6 on the card plugged into slot 32 of the first chassis of the \
                                                   cascaded switch.",
                "parent": [
                  "port-1-32-6"
                ],
                "is-fru": true
              },
              {
                "component-id": "port-1-32-10",
                "class": "iana-hardware:port",
                "description": "Empty port 10 on the card plugged \
          into slot 32 of the first chassis of the cascaded switch.",
                "parent": [
                  "card-1-32"
                ],
                "parent-rel-pos": "10"
              },
              {
                "component-id": "chassis-2",
                "class": "iana-hardware:chassis",
                "description": "Second chassis of the cascaded \
                                                            switch.",
                "parent-rel-pos": "2",
                "is-fru": true
              },
              {
                "component-id": "slot-2-1",
                "class": "iana-hardware:container",
                "description": "Slot 1 of the second chassis of the \
                                                   cascaded switch.",
                "parent": [
                  "chassis-2"
                ],
                "parent-rel-pos": "1"
              },
              {
                "component-id": "card-2-1",
                "class": "iana-hardware:module",
                "description": "Card plugged into slot 1 of the \
                             second chassis of the cascaded switch.",
                "parent": [
                  "slot-2-1"
                ],
                "is-fru": true
              },
              {
                "component-id": "port-2-1-5",
                "class": "iana-hardware:port",
                "description": "Pluggable port 5 on the card \
  plugged into slot 1 of the second chassis of the cascaded switch.",
                "parent": [
                  "card-2-1"
                ],
                "parent-rel-pos": "5"
              },
              {
                "component-id": "transceiver-module-2-1-5",
                "class": "iana-hardware:module",
                "description": "Transceiver module plugged in port \
5 on the card plugged into slot 1 of the second chassis of the \
                                                   cascaded switch.",
                "parent": [
                  "port-2-1-5"
                ],
                "is-fru": true
              },
              {
                "component-id": "slot-2-16",
                "class": "iana-hardware:container",
                "description": "Slot 16 of the second chassis of \
                                               the cascaded switch.",
                "parent": [
                  "chassis-2"
                ],
                "parent-rel-pos": "16"
              },
              {
                "component-id": "chassis-3",
                "class": "iana-hardware:chassis",
                "description": "Third chassis of the cascaded switch\
                                                                  .",
                "parent-rel-pos": "3",
                "is-fru": true
              },
              {
                "component-id": "slot-3-1",
                "class": "iana-hardware:container",
                "description": "Empty slot 1 of the third chassis \
                                            of the cascaded switch.",
                "parent": [
                  "chassis-3"
                ],
                "parent-rel-pos": "1"
              },
              {
                "component-id": "slot-3-16",
                "class": "iana-hardware:container",
                "description": "Slot 16 of the third chassis of the \
                                                   cascaded switch.",
                "parent": [
                  "chassis-3"
                ],
                "parent-rel-pos": "16"
              },
              {
                "component-id": "card-3-16",
                "class": "iana-hardware:module",
                "description": "Card plugged into slot 16 of the \
                              third chassis of the cascaded switch.",
                "parent": [
                  "slot-3-16"
                ],
                "is-fru": true
              },
              {
                "component-id": "port-3-16-7",
                "class": "iana-hardware:port",
                "description": "Pluggable port 7 on the card \
  plugged into slot 16 of the third chassis of the cascaded switch.",
                "parent": [
                  "card-3-16"
                ],
                "parent-rel-pos": "7"
              },
              {
                "component-id": "transceiver-module-3-16-7",
                "class": "iana-hardware:module",
                "description": "Transceiver module plugged in port \
7 on the card plugged into slot 16 of the third chassis of the \
                                                   cascaded switch.",
                "parent": [
                  "port-3-16-7"
                ],
                "is-fru": true
              }
            ]
          }
        }
      ]
    }
  }
}
]]></sourcecode>
      </section>
    </section>
    <section anchor="non-modular-examples">
      <name>Example of non-modular network elements</name>
      <t>This appendix provides some examples of non-modular network elements and how they can be modelled using the "ietf-network-inventory" module defined in <xref target="ni-yang"/>.</t>
      <t>Non-modular network elements (also known as "pizza boxes") are network elements comprised of a single chassis as a self-contained system. A non-modular network element does not have any slots to take cards so it cannot take any non-field replaceable modules other than pluggable ports.</t>
      <t><xref target="fig-pizza-box"/> describes an example of a pizza box with 8 ports.</t>
      <figure anchor="fig-pizza-box">
        <name>Example of an 8 ports pizza box device</name>
        <artset>
          <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="128" width="432" viewBox="0 0 432 128" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 8,32 L 8,96" fill="none" stroke="black"/>
              <path d="M 24,48 L 24,80" fill="none" stroke="black"/>
              <path d="M 56,48 L 56,80" fill="none" stroke="black"/>
              <path d="M 72,48 L 72,80" fill="none" stroke="black"/>
              <path d="M 104,48 L 104,80" fill="none" stroke="black"/>
              <path d="M 120,48 L 120,80" fill="none" stroke="black"/>
              <path d="M 152,48 L 152,80" fill="none" stroke="black"/>
              <path d="M 168,48 L 168,80" fill="none" stroke="black"/>
              <path d="M 200,48 L 200,80" fill="none" stroke="black"/>
              <path d="M 216,48 L 216,80" fill="none" stroke="black"/>
              <path d="M 248,48 L 248,80" fill="none" stroke="black"/>
              <path d="M 264,48 L 264,80" fill="none" stroke="black"/>
              <path d="M 296,48 L 296,80" fill="none" stroke="black"/>
              <path d="M 312,48 L 312,80" fill="none" stroke="black"/>
              <path d="M 344,48 L 344,80" fill="none" stroke="black"/>
              <path d="M 360,48 L 360,80" fill="none" stroke="black"/>
              <path d="M 392,48 L 392,80" fill="none" stroke="black"/>
              <path d="M 408,32 L 408,96" fill="none" stroke="black"/>
              <path d="M 8,32 L 408,32" fill="none" stroke="black"/>
              <path d="M 24,48 L 56,48" fill="none" stroke="black"/>
              <path d="M 72,48 L 104,48" fill="none" stroke="black"/>
              <path d="M 120,48 L 152,48" fill="none" stroke="black"/>
              <path d="M 168,48 L 200,48" fill="none" stroke="black"/>
              <path d="M 216,48 L 248,48" fill="none" stroke="black"/>
              <path d="M 264,48 L 296,48" fill="none" stroke="black"/>
              <path d="M 312,48 L 344,48" fill="none" stroke="black"/>
              <path d="M 360,48 L 392,48" fill="none" stroke="black"/>
              <path d="M 24,80 L 56,80" fill="none" stroke="black"/>
              <path d="M 72,80 L 104,80" fill="none" stroke="black"/>
              <path d="M 120,80 L 152,80" fill="none" stroke="black"/>
              <path d="M 168,80 L 200,80" fill="none" stroke="black"/>
              <path d="M 216,80 L 248,80" fill="none" stroke="black"/>
              <path d="M 264,80 L 296,80" fill="none" stroke="black"/>
              <path d="M 312,80 L 344,80" fill="none" stroke="black"/>
              <path d="M 360,80 L 392,80" fill="none" stroke="black"/>
              <path d="M 8,96 L 408,96" fill="none" stroke="black"/>
              <g class="text">
                <text x="40" y="68">1</text>
                <text x="88" y="68">2</text>
                <text x="136" y="68">3</text>
                <text x="184" y="68">4</text>
                <text x="232" y="68">5</text>
                <text x="280" y="68">6</text>
                <text x="328" y="68">7</text>
                <text x="376" y="68">8</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art"><![CDATA[
    +-------------------------------------------------+
    | +---+ +---+ +---+ +---+ +---+ +---+ +---+ +---+ |
    | | 1 | | 2 | | 3 | | 4 | | 5 | | 6 | | 7 | | 8 | |
    | +---+ +---+ +---+ +---+ +---+ +---+ +---+ +---+ |  
    +-------------------------------------------------+
]]></artwork>
        </artset>
      </figure>
      <t>Using the base network inventory YANG data model a non-modular network element can be modelled as a network element containing only one chassis and ports (as child components of the chassis).</t>
      <t>Reporting the single chassis component within a non-modular network element is required because the chassis component is the type of component which provides the physical characteristics of the network element chassis (the network element is defined just as an assembly of components) and its location, using the network inventory YANG data model under definition in <xref target="I-D.ietf-ivy-network-inventory-location"/>.</t>
      <section anchor="json-examples-2">
        <name>JSON Examples</name>
        <t>This appendix contains an example of an instance data tree in JSON encoding <xref target="RFC7951"/>, instantiating the "ietf-network-inventory" module to describe the pizza box example, as shown in <xref target="fig-pizza-box"/>.</t>
        <sourcecode type="json"><![CDATA[
{
  "ietf-network-inventory:network-inventory": {
    "network-elements": {
      "network-element" : [
        {
          "ne-id": "Pizza-box-NE",
          "description": "Example of a pizza box NE.",
          "components": {
            "component": [
              {
                "component-id": "pizza-chassis",
                "class": "iana-hardware:chassis",
                "description": "Pizza box chassis.",
                "is-fru": true
              },
              {
                "component-id": "port-1",
                "class": "iana-hardware:port",
                "description": "Port 1 of the pizza box.",
                "parent": [
                  "pizza-chassis"
                ],
                "parent-rel-pos": "1"
              },
              {
                "component-id": "port-2",
                "class": "iana-hardware:port",
                "description": "Port 2 of the pizza box.",
                "parent": [
                  "pizza-chassis"
                ],
                "parent-rel-pos": "2"
              },
              {
                "component-id": "port-3",
                "class": "iana-hardware:port",
                "description": "Port 3 of the pizza box.",
                "parent": [
                  "pizza-chassis"
                ],
                "parent-rel-pos": "3"
              },
              {
                "component-id": "port-4",
                "class": "iana-hardware:port",
                "description": "Port 4 of the pizza box.",
                "parent": [
                  "pizza-chassis"
                ],
                "parent-rel-pos": "4"
              },
              {
                "component-id": "port-5",
                "class": "iana-hardware:port",
                "description": "Port 5 of the pizza box.",
                "parent": [
                  "pizza-chassis"
                ],
                "parent-rel-pos": "5"
              },
              {
                "component-id": "port-6",
                "class": "iana-hardware:port",
                "description": "Port 6 of the pizza box.",
                "parent": [
                  "pizza-chassis"
                ],
                "parent-rel-pos": "6"
              },
              {
                "component-id": "port-7",
                "class": "iana-hardware:port",
                "description": "Port 7 of the pizza box.",
                "parent": [
                  "pizza-chassis"
                ],
                "parent-rel-pos": "7"
              },
              {
                "component-id": "port-8",
                "class": "iana-hardware:port",
                "description": "Port 8 of the pizza box.",
                "parent": [
                  "pizza-chassis"
                ],
                "parent-rel-pos": "8"
              }
            ]
          }
        }
      ]
    }
  }
}
]]></sourcecode>
      </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>The authors of this document would like to thank
Adrian Farrel, Alexander Clemm, Brad Peters, Camilo Cardona, Daniele Ceccarelli,
Gabriele Galimberti, Jan Lindblad, Joe Clarke, Mahesh Jethanandani,
Mohamed Boucadair, Prasenjit Manna, Rob Wilton, Qin Wu, Qiufang Ma, and
Swamynathan Balasundaram for their valuable input to the technical discussions during the development of this document.</t>
      <t>The authors would like to thank Reshad Rahman for his YANG Doctor eview.</t>
      <t>The authors would like to thank Valery Smyslov, Samier Barguil, and
for their Security Directorate, Operational Directorate (ops-dir), and General Area Review Team (Gen-ART) reviews.</t>
      <t>This document was prepared using kramdown.</t>
    </section>
    <section anchor="contributors" numbered="false" toc="include" removeInRFC="false">
      <name>Contributors</name>
      <contact initials="I." surname="Busi" fullname="Italo Busi">
        <organization>Huawei Technologies</organization>
        <address>
          <email>italo.busi@huawei.com</email>
        </address>
      </contact>
      <contact initials="A." surname="Guo" fullname="Aihua Guo">
        <organization>Futurewei Technologies</organization>
        <address>
          <email>aihuaguo.ietf@gmail.com</email>
        </address>
      </contact>
      <contact initials="V." surname="Lopez" fullname="Victor Lopez">
        <organization>Nokia</organization>
        <address>
          <email>victor.lopez@nokia.com</email>
        </address>
      </contact>
      <contact initials="B." surname="Wu" fullname="Bo Wu">
        <organization>Huawei Technologies</organization>
        <address>
          <email>lana.wubo@huawei.com</email>
        </address>
      </contact>
      <contact initials="C." surname="Zhang" fullname="Chenfang Zhang">
        <organization>China Unicom</organization>
        <address>
          <email>zhangcf80@chinaunicom.cn</email>
        </address>
      </contact>
      <contact initials="O." surname="Gonzalez de Dios" fullname="Oscar Gonzalez de Dios">
        <organization>Telefonica</organization>
        <address>
          <email>oscar.gonzalezdedios@telefonica.com</email>
        </address>
      </contact>
      <contact initials="N." surname="Davis" fullname="Nigel Davis">
        <organization>Ciena</organization>
        <address>
          <email>ndavis@ciena.com</email>
        </address>
      </contact>
      <contact initials="R." surname="Manzotti" fullname="Roberto Manzotti">
        <organization>Cisco</organization>
        <address>
          <email>rmanzott@cisco.com</email>
        </address>
      </contact>
    </section>
  </back>
  <!-- ##markdown-source:
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
vOuf4dsJN+rwRzjhB/4Z7uqErzNyY/JHrR3TlYfkewxZFYJuiLRgIq2IM1qz
bOr8VZDnH+qmWEGn9SDr4t46vax7fa25Pppe61wn02uNnxv3ut4KrweNda6+
p9cKCq8H+YYbaq037PUHxI0a3qAH+Ty4wWC5Q7ZhMwxbB2jMKRz5HVnEG63p
NnN07bAzFY1ORgkev6JBc6pSpVNahU6DaUXx1a5D7Ncp02A6q2fHJUeHzKzZ
KPqIn8rZlGw1V4pmxu4aOuXUfM2dU5JmuU3PIDOZC2v1OPMEXbWsNPMcyH3U
fd5bjPvd6HLRlYNV7Q5kWjgI8kEwrCr1DIA71uybKeyVJWqNfZ7PVbUoW8+k
B7NraOmUBipNdf5UfnjL7RICsEpUwLVyjU26A7lAW3t2zSKDCpQt5dnU7Kjf
Rc/7rt/wrrvURFKUc37MLktLH8X57n2LbInzB7sWA/hIpMb7+Gr9axqajkR7
m3Tkhrcwo+j1ev534lJH/vcaM+qOfBA/fhQPm+2Rl9bSX6w/40ff13fRUUPV
0xF34elIHwMcHitW9p3VvemhWCC5/n6v390s8/ZmXxOTy90/7txveINMw1ub
fV1SU+p+rZ/b6b5q5d8t726RypL2ALRx53HtAk130Qhn7qZ700P3dMeuP4pH
jVDO013cbPaljT5H95ugzQ1+7rB7gx0t6+67CA/kN/IirOguVhzHH7K7wvFr
dv8onhCX/O4ms99k4zdBGEeHdERhjxJZlYGrYu4NtMiSaiFVSRVOUVEjrcid
Ua0yyaof64jkxI8u2tY8MrLLUZ0STNIRi80iC0YUBWueKVeomPbIVNXzSyub
t6Rifr1+kJiJ1OsGWf/2f3KY+3wgvY+sHf8Lq3l6LWmPlB4bS3LtmdOtJuaI
0emcz5FjbGMZ7iVXqKvCuNWOeuJM9+HQneS9W+ZL9rfvAxf7Wl4norRCxuXb
tVPICrBOMjH/EpbVfcOE5zLlCwdqD4dRNZfZf2E3VvKMEOeSctY9Bn0+D1Tl
sLOOC6bs08C/6kWU5YXiE6ZizuD9Erco1+NxXZ+na7ug3oUTqty+toIqEIzo
87X9+3KNNU3gWOdeZk688u3ndkPduQtH1HOsTTL8t4P6rfiyevwq1zuDxp6V
F2Ym5XqnPCUlJKsHkS8/uds5CI14jc7htmmNQoN1YN6c3CrUvza99S7rTujt
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
HmjbsyzEG66Mte/hHIagf/da/x80NgHm0IMBAA==

-->

</rfc>
