<?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-20" 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-20"/>
    <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="29"/>
    <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-09-29 --&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-09-29.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-29 {
    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 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 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>The inventory needs to be updated every time components are added or removed from the network. Protocol-specific mechanisms can be used to notify the client about these changes.</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 1120?>

<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, the term "container" represents a hardware component class capable of containing one or more removable physical entities, e.g., a slot in a chassis capable of containing 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 document 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 Doctors review.</t>
      <t>The authors would like to thank Valery Smyslov, Samier Barguil, and Elwyn Davies
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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
11wGaOI/rL9JoXTdpiAUrnLc6OeaHdZe0tqbbna6PrCqE971z/DthBt1+COc
8AP/DHd1wtcZuTH5o9aO6cpD8j2GrApBN0RaMJFWxBmtWTZ1/irI8w91U6yg
03qQdXFvnV7Wvb7WXB9Nr3Wuk+m1xs+Ne11vhdeDxjpX39NrBYXXg3zDDbXW
G/b6A+JGDW/Qg3we3GCw3CHbsBmGrQM05hSO/I4s4o3WdJt5uHbYl4pGJ6ME
j1/RoDlHqdIprYKswbSi+GrPIXbrlPkvndWz35KjQ2bWbBR2xE/lbEq2mitF
M2NvDZ1rar7mzimhtNymZ5CZTIK1epx5gp5aVkp8juA+6j7vLcb9bnS56MrB
qnYHMi0cBPkgGFaVegbAHWv2zRT2yhK1xj7P56qqla1n0oPZNbR0yv+Upjpx
Kj+85Xa5A1glKuBaucYm3YFcoK09u2aRQQXKlvJsaovU76LnfddveNddaiIp
yjk/ZpelpY/ifPe+RbbE+YNdiwF8JFLjfXy1/jUNTUeivU06csNbmFH0ej3/
O3GpI/97jRl1Rz6IHz+Kh832yEtr6S/Wn/Gj7+u76Kih6umIu/B0pI8BDo8V
K/vO6t70UCyQXH+/1+9ulnl7s6+JyeXuH3fuN7xBpuGtzb4uqSl1v9bP7XRf
tfLvlne3SGVJewDauPO4doGmu2iEM3fTvemhe7pj1x/Fo0Yo5+kubjb70kaf
o/tN0OYGP3fYvcGOlnX3XYQH8ht5EVZ0FyuO4w/ZXeH4Nbt/FE+IS353k9lv
svGbIIyjQzqisEeJrMrAVTH3BlpkSbWQqqSKpqiokVbgzqhWmWTVj3VEVWPE
nkcGdjmqU4LZOWKxWWTBiMJfzTPlChXTHpmqj35pZfOWVMyv1w8SU5B63SDr
3/5PDnOfD6T3kbXjf2E1T68l7ZHyYmP5sD1zutWMHDE6nfM5cmhtLKO95Ap1
ORi3MlNPnOk+HLmTvHdLksn+9n3gwmTLC0SUVsi4fLt2Clmp1ski5l/Cshp1
mOlc5nrhCO3hMKomMfsv7MZKnhHiXFLOusegz+eBqhx21nHBlH0a+Fe9iLK8
UHzClMoZvF/iFuV6PK7r83RtF9S7cEKV29dWUAWCEX2+tn9frrGmCRzr3MvM
iVe+/dxuqDt34Yh6jkVJhv92UL8VX1aPX+V6Z9DYs/LCzKRc75SnpIRk9SDy
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
4oVXttv3cCxDUMd7rf8Pi0HT/4KEAQA=

-->

</rfc>
