<?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.29 (Ruby 3.2.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-ivy-network-inventory-yang-08" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.30.0 -->
  <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-08"/>
    <author initials="C." surname="Yu" fullname="Chaode Yu">
      <organization>Huawei Technologies</organization>
      <address>
        <email>yuchaode@huawei.com</email>
      </address>
    </author>
    <author initials="S." surname="Belotti" fullname="Sergio Belotti">
      <organization>Nokia</organization>
      <address>
        <email>sergio.belotti@nokia.com</email>
      </address>
    </author>
    <author initials="J.-F." surname="Bouquier" fullname="Jean-Francois Bouquier">
      <organization>Vodafone</organization>
      <address>
        <email>jeff.bouquier@vodafone.com</email>
      </address>
    </author>
    <author initials="F." surname="Peruzzini" fullname="Fabio Peruzzini">
      <organization>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="2025" month="July" day="22"/>
    <keyword>next generation</keyword>
    <keyword>unicorn</keyword>
    <keyword>sparkling distributed ledger</keyword>
    <abstract>
      <?line 103?>

<t>This document defines a base YANG data model for 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 108?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>This document defines a base network inventory
YANG data model 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 I-D, is to indicate that it is
describing "network-wide" scope inventory information.</t>
      <t>Network inventory is a fundamental functional block in the overall network
management which was specified many years ago. Network inventory management is a critical
part for ensuring that the network remains healthy (e.g., auditing to identify faulty elements), well-planned (e.g., identify assets to upgrade or to decommission), and maintained appropriately to meet the 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 network elements capabilities as maintained in an inventory are key enablers for many applications. For example, <xref target="I-D.ietf-teas-actn-poi-applicability"/> identifies a gap about 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>It is key for operators to coordinate with the industry towards the use of a
standard YANG data model for Network Inventory data instead
of using vendors proprietary APIs.</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>Network Inventory is a collection of data for network devices and their components managed by a specific management system.
Per the definition of <xref target="RFC8969"/>, the network inventory model is a network model.</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>
      <t>The YANG data model defined in the document is intended to only report actual inventory data which includes both applied configuration data and state data of the network elements and components actually installed within the network.</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>
        </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>configuration data</t>
          </li>
          <li>
            <t>state data</t>
          </li>
        </ul>
        <t>The following terms are defined in <xref target="RFC8342"/> and are not redefined here:</t>
        <ul spacing="normal">
          <li>
            <t>applied configuration</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>container</t>
          </li>
          <li>
            <t>cpu</t>
          </li>
          <li>
            <t>chassis</t>
          </li>
          <li>
            <t>fan</t>
          </li>
          <li>
            <t>module</t>
          </li>
          <li>
            <t>port</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>
        <ul empty="true">
          <li>
            <t>Editors' Note: The chassis and port definition below needs to be moved to iana-hardware update</t>
          </li>
        </ul>
        <dl>
          <dt>Chassis:</dt>
          <dd>
            <t>A field replaceable equipment with a particular structural format and dimensions.
A chassis can include spaces(called slots) to take cards.</t>
          </dd>
          <dt/>
          <dd>
            <t>Elsewhere, a chassis can be called shelf, sub-rack, 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 transceiver module is plugged in.</t>
          </dd>
        </dl>
        <t>Also, the document makes use of the following terms:</t>
        <dl>
          <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>The generalization of the hardware components defined in <xref target="IANA_HW_YANG"/> (e.g., backplane, battery, container, 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>The generalization of the hardware component definition to include other inventory objects which can be managed, from an inventory perspective, like hardware components.</t>
          </dd>
          <dt>Card:</dt>
          <dd>
            <t>A 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 (called sub-slots).</t>
          </dd>
          <dt>Physical interface:</dt>
          <dd>
            <t>An interface associated to a port. A physical interface is always in the lowest layer of the interface stack.</t>
          </dd>
          <dt>Logical interface:</dt>
          <dd>
            <t>An interface which is not associated to a port.</t>
          </dd>
        </dl>
        <ul empty="true">
          <li>
            <t>Editors' Note: check whether the definitions of physical and logical interfaces can be replaced by a normative reference to <xref target="RFC8343"/></t>
          </li>
        </ul>
        <dl>
          <dt>Breakout Port:</dt>
          <dd>
            <t>A port is usually associated with a single physical interface. A breakout port is a port which is broken down and associated into multiple physical interfaces. Those physical interfaces can have the same or different speeds and the same or different number of breakout channels.</t>
          </dd>
          <dt>Trunk Port:</dt>
          <dd>
            <t>A trunk port is a port which is associated with one and only physical interface.</t>
          </dd>
          <dt>Port Breakout:</dt>
          <dd>
            <t>The configuration of a breakout port.</t>
          </dd>
        </dl>
        <ul empty="true">
          <li>
            <t>Note that interface channelization, when an interface (e.g., an Ethernet interface) is configured to support multiple logical sub-interfaces (e.g., VLAN interfaces), is different than port breakout and outside the scope of inventory models.</t>
          </li>
        </ul>
        <dl>
          <dt>Breakout channel:</dt>
          <dd>
            <t>An abstraction of the atomic resource elements into which a breakout port can be broken down: a physical interface can be associated with one or more breakout channels but no more than one physical interface can be associated with one breakout channel.</t>
          </dd>
          <dt/>
          <dd>
            <t>The physical elements abstracted as breakout channels are implementation specific.
<xref target="port-examples"/> provides some examples of breakout ports configurations and implementations.</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>
          <dt>Transceiver:</dt>
          <dd>
            <t>A transceiver represents a transmitter/receiver (Tx/Rx) pair which is transmitting and receiving a signal from the media.</t>
          </dd>
          <dt/>
          <dd>
            <t>This definition generalizes the transceiver definition in <xref target="I-D.ietf-ccamp-optical-impairment-topology-yang"/> to model also non optical transceivers (e.g., electrical transceivers).</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="RFC6991"/></td>
            </tr>
            <tr>
              <td align="left">yang</td>
              <td align="left">ietf-yang-types</td>
              <td align="left">
                <xref section="3" sectionFormat="of" target="RFC6991"/></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>
    <section anchor="yang-data-model-for-network-inventory-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>
      <figure anchor="fig-overall">
        <name>Overall Tree Structure</name>
        <artwork type="ascii-art"><![CDATA[
  +--rw network-inventory
     +--rw network-elements
        +--rw network-element* [ne-id]
           +--rw ne-id                 string
           ...
           +--rw components
              +--rw component* [component-id]
                 +--rw component-id                        string
                 ...
]]></artwork>
      </figure>
      <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 Design for All Inventory Objects</name>
        <t>For all the inventory objects, there are some common attributes <xref target="fig-nec-tree"/>. Such as:</t>
        <dl>
          <dt>Identifier:</dt>
          <dd>
            <t>The UUID format is used. Such identifiers are widely implemented with systems. It is guaranteed to be globally unique.</t>
          </dd>
          <dt>Name:</dt>
          <dd>
            <t>A human-readable label information which could be used to present on a GUI. This name is suggested to be provided by a server.</t>
          </dd>
          <dt>Alias:</dt>
          <dd>
            <t>A human-readable label information which could be modified by user. It could also be present on a GUI instead of name.</t>
          </dd>
          <dt>Description:</dt>
          <dd>
            <t>A human-readable information which could be also input by a user. The description provides more detailed information to prompt users when performing maintenance operations.</t>
          </dd>
        </dl>
        <figure anchor="fig-nec-tree">
          <name>Common Attributes Between Network Elements and Components Subtree</name>
          <artwork type="ascii-art"><![CDATA[
  +--rw network-elements
     +--rw network-element* [ne-id]
        +--rw ne-id            string
        +--rw ne-type?         identityref
        +--rw uuid?            yang:uuid
        +--rw name?            string
        +--rw description?     string
        +--rw alias?           string
        ...
        +--rw components
           +--rw component* [component-id]
              +--rw component-id            string
              +--rw uuid?                   yang:uuid
              +--rw name?                   string
              +--rw description?            string
              +--rw alias?                  string
              +--rw class                   union
              ...
]]></artwork>
        </figure>
      </section>
      <section anchor="network-element">
        <name>Network Element</name>
        <t>To be consistent with the component definition, some of the
attributes defined in <xref target="RFC8348"/> for components are reused for network
elements as shown in <xref target="fig-ne-tree"/>.</t>
        <figure anchor="fig-ne-tree">
          <name>Network Elements Subtree</name>
          <artwork type="ascii-art"><![CDATA[
  +--rw network-elements
     +--rw network-element* [ne-id]
        ...
        +--rw hardware-rev?    string
        +--rw software-rev?    string
        +--rw mfg-name?        string
        +--rw mfg-date?        yang:date-and-time
        +--rw part-number?     string
        +--rw serial-number?   string
        +--rw product-name?    string
        ...
]]></artwork>
        </figure>
        <ul empty="true">
          <li>
            <t>Not all the attributes defined in <xref target="RFC8348"/> are applicable for network element. And there could also be some missing attributes which are not recognized by <xref target="RFC8348"/>. More extensions could be introduced in later revisions after the missing attributes are fully discussed.</t>
          </li>
        </ul>
      </section>
      <section anchor="ne-component">
        <name>Components</name>
        <t>The YANG data model for network inventory mainly follows the same approach of <xref target="RFC8348"/> and reports the network hardware inventory as a list of components with different types (e.g., chassis, module, and port).</t>
        <t>The component definition (<xref target="fig-comp-tree"/>) is generalized to both hardware components
and non-hardware components (e.g., software components).</t>
        <figure anchor="fig-comp-tree">
          <name>Components Subtree</name>
          <artwork type="ascii-art"><![CDATA[
  +--rw components
      +--rw component* [component-id]
        +--rw component-id            string
        +--rw uuid?                   yang:uuid
        +--rw name?                   string
        +--rw description?            string
        +--rw alias?                  string
        +--rw class                   union
        +--rw child-component-ref
        +--rw parent-rel-pos?         int32
        +--rw parent-component-ref
        +--rw hardware-rev?           string
        +--rw firmware-rev?           string
        +--rw software-rev?           string
        +--rw serial-num?             string
        +--rw mfg-name?               string
        +--rw part-number?            string
        +--rw asset-id?               string
        +--rw is-fru?                 boolean
        +--rw mfg-date?               yang:date-and-time
        +--rw uri*                    inet:uri
]]></artwork>
        </figure>
        <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>Based on TMF classification in <xref target="TMF_SD2-20"/>, hardware components can be divided into two groups, holder group and equipment group. The holder group contains rack, chassis, slot, sub-slot while the equipment group contains network-element, board and port.</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="228" y="228">chassis/</text>
                    <text x="224" y="244">sub-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/  |---+
                              | sub-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="software-components">
          <name>Software Components</name>
          <t>This document defines "software-rev" of NEs and components, which are
basic software attributes of a Network Element.</t>
          <t>The software and hardware components share the same attributes of the
component and have similar replaceable requirements. Generally, the
device also has other software data, for example, one or more
software patch information.</t>
          <t>The software components of other
classes, such as platform software, BIOS, bootloader, and software
patch information, are outside the scope of this document and defined other documents such as
<xref target="I-D.ietf-ivy-network-inventory-software"/>.</t>
        </section>
        <section anchor="ports">
          <name>Breakout ports</name>
          <t>The model defines the 'breakout-channels' presence container to indicate whether the port, which contains the transceiver module, can be configured as a breakout port or not.</t>
          <t>The breakout channels represent the capability of the port to support port breakout, independently on how the port is configured (trunk or breakout).</t>
          <t>It is assumed that a port which supports port breakout can be configured either as a trunk port or as a breakout port.</t>
          <t>Reporting whether a port, which supports port breakout, is configured as a trunk or as a breakout port, is outside the scope of the base network inventory model. The model providing the mapping between the topology and the inventory models should provide sufficient information to identify how the port is configured and, in case of breakout configuration, which breakout channel is associated with which Link Termination Point (LTP), abstracting a device physical interface within the topology model.</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 we suggest to rename it as "part-number" directly.</t>
          <artwork type="ascii-art"><![CDATA[
  +--ro components
     +--ro component* [component-id]
        ...
        +--ro part-number?           string
        ...
]]></artwork>
        </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>
    </section>
    <section anchor="ni-tree">
      <name>Network Inventory Tree Diagram</name>
      <t><xref target="fig-ni-tree"/> below shows the tree diagram of the YANG data model defined in module "ietf-network-inventory" (<xref target="ni-yang"/>).</t>
      <figure anchor="fig-ni-tree">
        <name>Network inventory tree diagram</name>
        <artwork type="ascii-art" name="ietf-network-inventory.tree"><![CDATA[
module: ietf-network-inventory
  +--rw network-inventory
     +--rw network-elements
        +--rw network-element* [ne-id]
           +--rw ne-id                 string
           +--ro ne-type?              identityref
           +--ro uuid?                 yang:uuid
           +--rw name?                 string
           +--rw description?          string
           +--rw alias?                string
           +--ro hardware-rev?         string
           +--ro software-rev?         string
           +--ro software-patch-rev*   string
           +--ro mfg-name?             string
           +--ro mfg-date?             yang:date-and-time
           +--ro serial-number?        string
           +--ro product-name?         string
           +--rw components
              +--rw component* [component-id]
                 +--rw component-id           string
                 +--ro class                  union
                 +--ro uuid?                  yang:uuid
                 +--rw name?                  string
                 +--rw description?           string
                 +--rw alias?                 string
                 +--ro hardware-rev?          string
                 +--ro software-rev?          string
                 +--ro software-patch-rev*    string
                 +--ro mfg-name?              string
                 +--ro mfg-date?              yang:date-and-time
                 +--ro serial-number?         string
                 +--ro product-name?          string
                 +--ro firmware-rev?          string
                 +--ro part-number?           string
                 +--ro asset-id?              string
                 +--ro is-fru?                boolean
                 +--ro uri*                   inet:uri
                 +--ro child-component-ref
                 +--ro parent-rel-pos?        int32
                 +--ro parent?
                 |       -> ../../component/component-id
                 +--ro is-main?               boolean
                 +--ro breakout-channels!
                    +--ro breakout-channel* [channel-id]
                       +--ro channel-id    uint8
]]></artwork>
      </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@2025-02-03.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 6991: Common YANG Data Types";
  }
  import ietf-inet-types {
    prefix inet;
    reference
      "RFC 6991: Common YANG Data Types";
  }

  organization
    "IETF IVY Working Group";
  contact
    "WG Web:   <https://datatracker.ietf.org/wg/ivy/>
     WG List:  <mailto:inventory-yang@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.

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

     Copyright (c) 2025 IETF Trust and the persons
     identified as authors of the code.  All rights reserved.

     Redistribution and use in source and binary forms, with or
     without modification, is permitted pursuant to, and subject
     to the license terms contained in, the Revised BSD License
     set forth in Section 4.c of the IETF Trust's Legal Provisions
     Relating to IETF Documents
     (https://trustee.ietf.org/license-info).

     This version of this YANG module is part of RFC XXXX; see
     the RFC itself for full legal notices.

     The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL
     NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED',
     'MAY', and 'OPTIONAL' in this document are to be interpreted as
     described in BCP 14 (RFC 2119) (RFC 8174) when, and only when,
     they appear in all capitals, as shown here.";

  // RFC Ed.: update the date below with the date of RFC publication
  // and remove this note.

  revision 2025-07-02 {
    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). ";
  }

  /*
   * Editors' Note: This identity may need to be moved to
   *                iana-hardware update
   */

  identity transceiver-module {
    base ianahw:hardware-class;
    description
      "This identity is applicable if the hardware class is some sort
       of self-contained sub-system which contains one or more
       transceivers (e.g., optical or electrical transceivers).

       A transceiver-module component can only be contained by a
       port component.";
  }

  /*
   * Types
   */

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

  /*
   * Groupings
   */

  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";
      }
      must "derived-from-or-self (/nwi:network-inventory/
            nwi:network-elements/nwi:network-element
            [nwi:ne-id=../ne-ref]/nwi:components/nwi:component
            [nwi:component-id=current()]/nwi:class, 'ianahw:port')";
      description
        "The reference to the port component.";
    }
  }

  grouping channel-ref {
    description
      "This grouping is intended to be used by data models that need
       to reference one or more breakout channels within a
       transceivers module component.";
    leaf ne-ref {
      type nwi:ne-ref;
      description
        "The reference to the Network Element which contains the
         transceiver module to be referenced.";
    }
    leaf transceiver-module-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";
      }
      must "derived-from-or-self (/nwi:network-inventory/
            nwi:network-elements/nwi:network-element
            [nwi:ne-id=../ne-ref]/nwi:components/nwi:component
            [nwi:component-id=current()]/nwi:class,
            'nwi:transceiver-module')";
      description
        "The reference to the transceivers module component.";
    }
    leaf-list channel-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="
           + "current()/../transceiver-module-ref]/"
           + "nwi:breakout-channels/nwi:breakout-channel/"
           + "nwi:channel-id";
      }
      description
        "The references to the breakout channels.";
    }
  }

  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 non-hardware-component-class;
        }
      }
      config false;
      mandatory true;
      description
        "The type of the component.";
    }
    uses ne-component-common-entity-attributes {
      refine "hardware-rev" {
        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";
      }
      refine "software-rev" {
        reference
          "RFC 6933: Entity MIB (Version 4) -
                     entPhysicalSoftwareRev";
      }
      refine "mfg-name" {
        description
          "The name of the manufacturer of this physical
           component.
           The preferred value is the manufacturer name
           string actually printed on the component itself
           (if present).

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

           If the manufacturer name string associated with
           the physical component is unknown to the server,
           then this node is not instantiated.";
        reference
          "RFC 6933: Entity MIB (Version 4) -
                     entPhysicalMfgName";
      }
      refine "mfg-date" {
        description
          "The date of manufacturing of the managed
           component.";
        reference
          "RFC 6933: Entity MIB (Version 4) -
                     entPhysicalMfgDate";
      }
    }
    leaf firmware-rev {
      type string;
      config false;
      description
        "The vendor-specific firmware revision string for the
         component.";
      reference
        "RFC 6933: Entity MIB (Version 4) -
                   entPhysicalFirmwareRev";
    }
    leaf part-number {
      type string;
      config false;
      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 asset-id {
      type string;
      config false;
      description
        "This node is a user-assigned asset tracking
         identifier for the component.

         A server implementation MAY map this leaf to the
         entPhysicalAssetID MIB object.  Such an
         implementation needs to use some mechanism to handle
         the differences in size and characters allowed
         between this leaf and entPhysicalAssetID.

         The definition of such a mechanism is outside the
         scope of this document.";
      reference
        "RFC 6933: Entity MIB (Version 4) -
                   entPhysicalAssetID";
    }
    leaf is-fru {
      type boolean;
      config false;
      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;
      config false;
      description
        "This node contains identification information about
         the component.";
      reference
        "RFC 6933: Entity MIB (Version 4) - entPhysicalUris";
    }
  }

  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;
      config false;
      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 manager, that provides a non-volatile 'handle'
         for the entity and that can be modified anytime during the
         entity lifetime.

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

  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;
    leaf hardware-rev {
      type string;
      config false;
      description
        "The vendor-specific hardware revision string for the entity
         (e.g., component).";
    }
    leaf software-rev {
      type string;
      config false;
      description
        "The vendor-specific software revision string for the entity
         (e.g., component).";
    }
    leaf-list software-patch-rev {
      type string;
      config false;
      description
        "The vendor-specific patch software revision string for the
         entity (e.g., component).";
    }
    leaf mfg-name {
      type string;
      config false;
      description
        "The name of the manufacturer of this entity
         (e.g., component).";
    }
    leaf mfg-date {
      type yang:date-and-time;
      config false;
      description
        "The date of manufacturing of the entity (e.g., component).";
    }
    leaf serial-number {
      type string;
      config false;
      description
        "The vendor-specific serial number of the the entity
         (e.g., component) instance. It is expected that vendors
         assign unique serial numbers to different network element
         instances within the scope of the product name.";
    }
    leaf product-name {
      type string;
      config false;
      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.";
    }
  }

  /* 
   * Data Nodes
   */

  container network-inventory {
    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";
          config false;
          description
            "The NE type.";
        }
        uses ne-component-common-entity-attributes;
        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;
            container child-component-ref {
              config false;
              description
                "A placeholder for adding the reference to child
                 component(s): to further discuss whether to define
                 a child leaf-list as RFC 8348 or a list of
                 sub-components as openconfig-platform.";
            }
            leaf parent-rel-pos {
              type int32 {
                range "0 .. 2147483647";
              }
              config false;
              description
                "The relative position with respect to the parent
                 component among all the sibling components.";
              reference
                "RFC 6933: Entity MIB (Version 4) -
                           entPhysicalParentRelPos";
            }
            leaf parent {
              type leafref {
                path "../../component/component-id";
                require-instance false;
              }
              config false;
              description
                "The identifier of the component that physically
                 contains this component.

                 If this leaf is not instantiated, it indicates that
                 this component is not contained in any other
                 component.

                 In the event that a physical component is contained
                 by more than one physical component
                 (e.g., double-wide modules), this node contains the
                 identifier of one of these components.
                 An implementation MUST use the same name every time
                 this node is instantiated.";
              reference
                "RFC 6933: Entity MIB (Version 4) -
                           entPhysicalContainedIn";
            }
            leaf is-main {
              when "derived-from-or-self(../nwi:class, "
                 + "'ianahw:chassis')";
              type boolean;
              config false;
              description
                "This node indicates whether the chassis is taking or
                 not the 'main' role.

                 This node is applicable only to scenarios where
                 there are chassis components which can take the
                 'main' role (e.g., multi-chassis network elements),
                 otherwise it is omitted.";
            }
            container breakout-channels {
              when "derived-from-or-self(../nwi:class, "
                 + "'nwi:transceiver-module')";
              presence
                "When present, it indicates that port breakout is
                 supported.";
              config false;
              description
                "Top level container for the list of breakout
                 channels supported by the transceivers module.";
              list breakout-channel {
                key "channel-id";
                description
                  "The list of breakout channels supported by the
                   transceivers module.";
                leaf channel-id {
                  type uint8;
                  description
                    "An identifier that uniquely identifies the
                     breakout channel within the transceiver
                     module.";
                }
              }
            }
          }
        }
      }
    }
  }
}
]]></sourcecode>
      </figure>
    </section>
    <section anchor="manageability-considerations">
      <name>Manageability Considerations</name>
      <t>&lt;Add any manageability considerations&gt;</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>&lt;Add any security considerations&gt;</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>&lt;Add any IANA considerations&gt;</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative 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="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="RFC8343">
          <front>
            <title>A YANG Data Model for Interface Management</title>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
            <date month="March" year="2018"/>
            <abstract>
              <t>This document defines a YANG data model for the management of network interfaces. It is expected that interface-type-specific data models augment the generic interfaces data model defined in this document. The data model includes definitions for configuration and system state (status information and counters for the collection of statistics).</t>
              <t>The YANG data model in this document conforms to the Network Management Datastore Architecture (NMDA) defined in RFC 8342.</t>
              <t>This document obsoletes RFC 7223.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8343"/>
          <seriesInfo name="DOI" value="10.17487/RFC8343"/>
        </reference>
        <reference anchor="RFC6991">
          <front>
            <title>Common YANG Data Types</title>
            <author fullname="J. Schoenwaelder" initials="J." role="editor" surname="Schoenwaelder"/>
            <date month="July" year="2013"/>
            <abstract>
              <t>This document introduces a collection of common data types to be used with the YANG data modeling language. This document obsoletes RFC 6021.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6991"/>
          <seriesInfo name="DOI" value="10.17487/RFC6991"/>
        </reference>
        <reference anchor="RFC6933">
          <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>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <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="4" month="July" year="2025"/>
            <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-15"/>
        </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="I-D.ietf-ccamp-optical-impairment-topology-yang">
          <front>
            <title>A YANG Data Model for Optical Impairment-aware Topology</title>
            <author fullname="Dieter Beller" initials="D." surname="Beller">
              <organization>Nokia</organization>
            </author>
            <author fullname="Esther Le Rouzic" initials="E." surname="Le Rouzic">
              <organization>Orange</organization>
            </author>
            <author fullname="Sergio Belotti" initials="S." surname="Belotti">
              <organization>Nokia</organization>
            </author>
            <author fullname="Gabriele Galimberti" initials="G." surname="Galimberti">
              <organization>Nokia</organization>
            </author>
            <author fullname="Italo Busi" initials="I." surname="Busi">
              <organization>Huawei Technologies</organization>
            </author>
            <date day="7" month="July" year="2025"/>
            <abstract>
              <t>   In order to provision an optical connection through optical networks,
   a combination of path continuity, resource availability, and
   impairment constraints must be met to determine viable and optimal
   paths through the network.  The determination of appropriate paths is
   known as Impairment-Aware Routing and Wavelength Assignment (IA-RWA)
   for a Wavelength Switched Optical Network (WSON), while it is known
   as Impairment-Aware Routing and Spectrum Assignment (IA-RSA) for a
   Spectrum Switched Optical Network (SSON).

   This document provides a YANG data model for the impairment-aware TE
   topology in optical networks.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-ccamp-optical-impairment-topology-yang-19"/>
        </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="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="7" month="July" year="2025"/>
            <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-03"/>
        </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="10" month="June" year="2025"/>
            <abstract>
              <t>   The base Network Inventory YANG model defines the physical network
   elements (NEs) and hardware components of NEs.  This document extends
   the base Network Inventory model for non-physical NEs (e.g.,
   controllers, virtual routers, virtual firewalls) and software
   components (e.g., platform operating system (OS), software-patch).

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-ivy-network-inventory-software-01"/>
        </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="Chaode Yu" initials="C." surname="Yu">
              <organization>Huawei</organization>
            </author>
            <author fullname="Aihua Guo" initials="A." surname="Guo">
              <organization>Futurewei</organization>
            </author>
            <author fullname="Italo Busi" initials="I." surname="Busi">
              <organization>Huawei</organization>
            </author>
            <author fullname="Mohammad Boroon" initials="M." surname="Boroon">
              <organization>Highstreet</organization>
            </author>
            <author fullname="Sergio Belotti" initials="S." surname="Belotti">
              <organization>Nokia</organization>
            </author>
            <author fullname="tom van caenegem" initials="T." surname="van caenegem">
              <organization>Nokia</organization>
            </author>
            <author fullname="Swaminathan 1. S." initials="S. 1." surname="S.">
              <organization>Nokia</organization>
            </author>
            <author fullname="Swaminathan B." initials="S." surname="B.">
              <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>
            <author fullname="Bin Yeong Yoon" initials="B. Y." surname="Yoon">
              <organization>ETRI</organization>
            </author>
            <author fullname="LIUYUCONG" initials="" surname="LIUYUCONG">
              <organization>China Mobile</organization>
            </author>
            <author fullname="Yang Zhao" initials="Y." surname="Zhao">
              <organization>China Mobile</organization>
            </author>
            <author fullname="Avinash Sakalabhaktula" initials="A." surname="Sakalabhaktula">
              <organization>Radisys</organization>
            </author>
            <date day="7" month="July" year="2025"/>
            <abstract>
              <t>   This document presents a YANG data model for tracking and managing
   passive network inventory.  The model enhances the base model
   outlined in [I-D.draft-ietf-ivy-network-inventory-yang] and is
   intended for use in the northbound interface of a domain controller
   as defined in [RFC8453].

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

<section anchor="comparison-with-openconfig-platform-data-model">
      <name>Comparison With Openconfig-platform Data Model</name>
      <t>Since more and more devices can be managed by domain controller through OpenConfig, to ensure that our inventory data model can cover these devices' inventory data, we have compared our inventory data model with the "openconfig-platform" model which is the data model used to manage inventory information in OpenConfig.</t>
      <t>Openconfig-platform data model is NE-level and uses a generic component concept to describe its inner devices and containers, which is similar to "ietf-hardware" model in <xref target="RFC8348"/>. Since we have also reused the component concept of <xref target="RFC8348"/> in our inventory data model, we can compare the component's attributes between "openconfig-platform" and our model directly , which is stated below:</t>
      <table anchor="tab-oc">
        <name>Comparison between openconfig platform and inventory data models</name>
        <thead>
          <tr>
            <th align="left">Attributes in oc-platform</th>
            <th align="left">Attributes in our model</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"> </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">firmware-rev</td>
            <td align="left"> </td>
          </tr>
          <tr>
            <td align="left">software-version</td>
            <td align="left">software-rev</td>
            <td align="left"> </td>
          </tr>
          <tr>
            <td align="left">serial-no</td>
            <td align="left">serial-num</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"> </td>
            <td align="left">TBD</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">contained-child?</td>
            <td align="left">If there is no contained child, it is 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">TBD</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">TBD</td>
          </tr>
          <tr>
            <td align="left">used-power</td>
            <td align="left"> </td>
            <td align="left">TBD</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">TBD</td>
          </tr>
          <tr>
            <td align="left">subcomponents</td>
            <td align="left"> </td>
            <td align="left"> </td>
          </tr>
          <tr>
            <td align="left">chassis</td>
            <td align="left"> </td>
            <td align="left"> </td>
          </tr>
          <tr>
            <td align="left">port</td>
            <td align="left"> </td>
            <td align="left"> </td>
          </tr>
          <tr>
            <td align="left">power-supply</td>
            <td align="left"> </td>
            <td align="left">TBD</td>
          </tr>
          <tr>
            <td align="left">fan</td>
            <td align="left"> </td>
            <td align="left">Fan is considered as a specific board. And no need to define as a single component</td>
          </tr>
          <tr>
            <td align="left">fabric</td>
            <td align="left"> </td>
            <td align="left">TBD</td>
          </tr>
          <tr>
            <td align="left">storage</td>
            <td align="left"> </td>
            <td align="left">For Optical and IP technology, no need to manage storage on network element</td>
          </tr>
          <tr>
            <td align="left">cpu</td>
            <td align="left"> </td>
            <td align="left">For Optical and IP technology, no need to manage CPU on network element</td>
          </tr>
          <tr>
            <td align="left">integrated-circuit</td>
            <td align="left"> </td>
            <td align="left"> </td>
          </tr>
          <tr>
            <td align="left">backplane</td>
            <td align="left"> </td>
            <td align="left">Backplane is considered as a part of board. And no need to define as a single component</td>
          </tr>
          <tr>
            <td align="left">software-module</td>
            <td align="left"> </td>
            <td align="left">TBD</td>
          </tr>
          <tr>
            <td align="left">controller-card</td>
            <td align="left"> </td>
            <td align="left">Controller card is considered as a specific functional board. And no need to define as a single component</td>
          </tr>
        </tbody>
      </table>
      <t>As it mentioned in <xref target="ne-component"/> that state data and performance data are out of scope of our data model, it is same for alarm data and it should be defined in some other alarm data models separately. And for some component specific structures in "openconfig-platform", we consider some of them can be contained by our existing structure, such as fan, backplane, and controller-card, while some others do not need to be included in this network inventory model like storage and cpu.</t>
      <t>Mostly, our inventory data model can cover the attributes from OpenConfig.</t>
    </section>
    <section anchor="terminology-of-container">
      <name>Terminology of Container</name>
      <t>Within this document , with the term "container" we consider an hardware component class capable of containing one or more removable physical entities, e.g. a slot in a chassis is 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 model</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">container</td>
            <td align="left">holder</td>
          </tr>
        </tbody>
      </table>
    </section>
    <section anchor="efficiency-issue">
      <name>Efficiency Issue</name>
      <t>During  the integration with OSS in some operators, some efficiency/scalability concerns have been discovered when synchronizing network inventory data for big networks.  More discussions are needed to address these concerns.</t>
      <t>Considering that relational databases are widely used by traditional OSS systems and also by some network controllers, the inventory objects are most likely to be saved in different tables. With the model defined in current draft, when doing a full synchronization, network controller needs to convert all inventory objects of each NE into component objects and combine them together into a single list, and then construct a response and send to OSS or MDSC. The OSS or MDSC needs to classify the component list and divide them into different groups, in order to save them in different tables. The combining-regrouping steps are impacting the network controller &amp; OSS/MDSC processing, which may result in efficiency/scalability limitations in large scale networks.</t>
      <t>An alternative YANG model structure, which defines the inventory objects directly, instead of defining generic components, has also been analyzed. However, also with this model, there still could be some scalability limitations when synchronizing full inventory resources in large scale of networks. This scalability limitation is caused by the limited transmission capabilities of HTTP protocol. We think that this scalability limitation should be solved at protocol level rather than data model level.</t>
      <t>The model proposed by this draft is designed to be as generic as possible so to cover future special types of inventory objects that could be used in other technologies, that have not been identified yet. If the inventory objects were to be defined directly with fixed hierarchical relationships in YANG model, this new type of inventory objects needs to be manually defined, which is not a backward compatible change and therefore is not an acceptable approach for implementation. With a generic model, it is only needed to augment a new component class and extend some specific attributes for this new inventory component class, which is more flexible. We consider that this generic data model, enabling a flexible and backward compatible approach for other technologies, represents the main scope of this draft. Solution description to efficiency/scalability limitations mentioned above is considered as out-of-scope.</t>
    </section>
    <section anchor="port-examples">
      <name>Examples of ports, transceivers and port breakouts</name>
      <t>This appendix provides some examples of ports, transceivers and port breakouts implementations and how they can be modelled using the "ietf-network-inventory" model defined in <xref target="ni-yang"/>.</t>
      <t><xref target="fig-board"/> shows an example of a single board which contains three type of ports:</t>
      <ol spacing="normal" type="1"><li>
          <t>An integrated port (non pluggable). This port can be of any type (e.g., optical or electrical), single-channel or multi-channel but not supporting breakouts;</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="480" viewBox="0 0 480 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 192,48 L 232,48" fill="none" stroke="black"/>
              <path d="M 192,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="144" y="52">...........</text>
                <text x="104" y="68">:</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="104" y="84">:</text>
                <text x="216" y="84">O</text>
                <text x="328" y="84">(integrated</text>
                <text x="428" y="84">transceiver)</text>
                <text x="144" y="100">:..........</text>
                <text x="284" y="148">2)</text>
                <text x="320" y="148">Emply</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 transceiver)
          |   :...........+---+
          |                   |
          |   +---------------+
          |   |                     2) Emply hole (port)
  Hole #1 |   |                
          |   |                     
          |   |                
          |   +---------------+
          |                   |
          |   +---------------+
          |   |  +---------------+
  Hole #2 |   |  |           | O |  3) Pluggable port
          |   |  |           | O |     
          |   |  +---------------+
          |   +---------------+
          |                   |
          |     (SLOT # 10)   |
          +-------------------+
]]></artwork>
        </artset>
      </figure>
      <t><xref target="fig-single-channel"/> describes an implementation of a single channel optical pluggable trunk port (e.g., a 100G-LR port configured as a single 100GE interface)</t>
      <figure anchor="fig-single-channel">
        <name>Example of a single channel optical pluggable port</name>
        <artset>
          <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="368" width="528" viewBox="0 0 528 368" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 8,96 L 8,288" fill="none" stroke="black"/>
              <path d="M 136,96 L 136,288" fill="none" stroke="black"/>
              <path d="M 192,304 L 192,320" fill="none" stroke="black"/>
              <path d="M 256,96 L 256,288" fill="none" stroke="black"/>
              <path d="M 360,96 L 360,288" fill="none" stroke="black"/>
              <path d="M 376,304 L 376,320" fill="none" stroke="black"/>
              <path d="M 392,128 L 392,160" fill="none" stroke="black"/>
              <path d="M 392,224 L 392,256" fill="none" stroke="black"/>
              <path d="M 464,128 L 464,160" fill="none" stroke="black"/>
              <path d="M 464,224 L 464,256" fill="none" stroke="black"/>
              <path d="M 496,112 L 496,272" fill="none" stroke="black"/>
              <path d="M 520,112 L 520,272" fill="none" stroke="black"/>
              <path d="M 8,96 L 136,96" fill="none" stroke="black"/>
              <path d="M 256,96 L 360,96" fill="none" stroke="black"/>
              <path d="M 144,112 L 160,112" fill="none" stroke="black"/>
              <path d="M 232,112 L 248,112" fill="none" stroke="black"/>
              <path d="M 496,112 L 520,112" fill="none" stroke="black"/>
              <path d="M 144,128 L 160,128" fill="none" stroke="black"/>
              <path d="M 232,128 L 248,128" fill="none" stroke="black"/>
              <path d="M 392,128 L 464,128" fill="none" stroke="black"/>
              <path d="M 144,144 L 160,144" fill="none" stroke="black"/>
              <path d="M 232,144 L 248,144" fill="none" stroke="black"/>
              <path d="M 368,144 L 384,144" fill="none" stroke="black"/>
              <path d="M 472,144 L 488,144" fill="none" stroke="black"/>
              <path d="M 144,160 L 160,160" fill="none" stroke="black"/>
              <path d="M 232,160 L 248,160" fill="none" stroke="black"/>
              <path d="M 392,160 L 464,160" fill="none" stroke="black"/>
              <path d="M 296,192 L 320,192" fill="none" stroke="black"/>
              <path d="M 144,224 L 160,224" fill="none" stroke="black"/>
              <path d="M 232,224 L 248,224" fill="none" stroke="black"/>
              <path d="M 392,224 L 464,224" fill="none" stroke="black"/>
              <path d="M 144,240 L 160,240" fill="none" stroke="black"/>
              <path d="M 232,240 L 248,240" fill="none" stroke="black"/>
              <path d="M 368,240 L 384,240" fill="none" stroke="black"/>
              <path d="M 472,240 L 488,240" fill="none" stroke="black"/>
              <path d="M 144,256 L 160,256" fill="none" stroke="black"/>
              <path d="M 232,256 L 248,256" fill="none" stroke="black"/>
              <path d="M 392,256 L 464,256" fill="none" stroke="black"/>
              <path d="M 144,272 L 160,272" fill="none" stroke="black"/>
              <path d="M 232,272 L 248,272" fill="none" stroke="black"/>
              <path d="M 496,272 L 520,272" fill="none" stroke="black"/>
              <path d="M 8,288 L 136,288" fill="none" stroke="black"/>
              <path d="M 256,288 L 360,288" fill="none" stroke="black"/>
              <path d="M 92,40 L 100,56" fill="none" stroke="black"/>
              <path d="M 172,56 L 176,64" fill="none" stroke="black"/>
              <path d="M 356,40 L 364,56" fill="none" stroke="black"/>
              <path d="M 516,56 L 520,64" fill="none" stroke="black"/>
              <path d="M 8,64 L 12,56" fill="none" stroke="black"/>
              <path d="M 84,56 L 92,40" fill="none" stroke="black"/>
              <path d="M 192,64 L 196,56" fill="none" stroke="black"/>
              <path d="M 348,56 L 356,40" fill="none" stroke="black"/>
              <path d="M 12,56 L 84,56" fill="none" stroke="black"/>
              <path d="M 100,56 L 172,56" fill="none" stroke="black"/>
              <path d="M 196,56 L 348,56" fill="none" stroke="black"/>
              <path d="M 364,56 L 516,56" fill="none" stroke="black"/>
              <polygon class="arrowhead" points="496,240 484,234.4 484,245.6" fill="black" transform="rotate(0,488,240)"/>
              <polygon class="arrowhead" points="480,144 468,138.4 468,149.6" fill="black" transform="rotate(180,472,144)"/>
              <polygon class="arrowhead" points="392,240 380,234.4 380,245.6" fill="black" transform="rotate(0,384,240)"/>
              <polygon class="arrowhead" points="384,304 372,298.4 372,309.6" fill="black" transform="rotate(270,376,304)"/>
              <polygon class="arrowhead" points="376,144 364,138.4 364,149.6" fill="black" transform="rotate(180,368,144)"/>
              <polygon class="arrowhead" points="328,192 316,186.4 316,197.6" fill="black" transform="rotate(0,320,192)"/>
              <polygon class="arrowhead" points="304,192 292,186.4 292,197.6" fill="black" transform="rotate(180,296,192)"/>
              <polygon class="arrowhead" points="256,272 244,266.4 244,277.6" fill="black" transform="rotate(0,248,272)"/>
              <polygon class="arrowhead" points="256,256 244,250.4 244,261.6" fill="black" transform="rotate(0,248,256)"/>
              <polygon class="arrowhead" points="256,240 244,234.4 244,245.6" fill="black" transform="rotate(0,248,240)"/>
              <polygon class="arrowhead" points="256,224 244,218.4 244,229.6" fill="black" transform="rotate(0,248,224)"/>
              <polygon class="arrowhead" points="240,160 228,154.4 228,165.6" fill="black" transform="rotate(180,232,160)"/>
              <polygon class="arrowhead" points="240,144 228,138.4 228,149.6" fill="black" transform="rotate(180,232,144)"/>
              <polygon class="arrowhead" points="240,128 228,122.4 228,133.6" fill="black" transform="rotate(180,232,128)"/>
              <polygon class="arrowhead" points="240,112 228,106.4 228,117.6" fill="black" transform="rotate(180,232,112)"/>
              <polygon class="arrowhead" points="200,304 188,298.4 188,309.6" fill="black" transform="rotate(270,192,304)"/>
              <polygon class="arrowhead" points="168,272 156,266.4 156,277.6" fill="black" transform="rotate(0,160,272)"/>
              <polygon class="arrowhead" points="168,256 156,250.4 156,261.6" fill="black" transform="rotate(0,160,256)"/>
              <polygon class="arrowhead" points="168,240 156,234.4 156,245.6" fill="black" transform="rotate(0,160,240)"/>
              <polygon class="arrowhead" points="168,224 156,218.4 156,229.6" fill="black" transform="rotate(0,160,224)"/>
              <polygon class="arrowhead" points="152,160 140,154.4 140,165.6" fill="black" transform="rotate(180,144,160)"/>
              <polygon class="arrowhead" points="152,144 140,138.4 140,149.6" fill="black" transform="rotate(180,144,144)"/>
              <polygon class="arrowhead" points="152,128 140,122.4 140,133.6" fill="black" transform="rotate(180,144,128)"/>
              <polygon class="arrowhead" points="152,112 140,106.4 140,117.6" fill="black" transform="rotate(180,144,112)"/>
              <g class="text">
                <text x="92" y="36">Host</text>
                <text x="320" y="36">Transceiver</text>
                <text x="396" y="36">Module</text>
                <text x="176" y="116">RX1</text>
                <text x="216" y="116">RX1</text>
                <text x="176" y="132">RX2</text>
                <text x="216" y="132">RX2</text>
                <text x="312" y="132">DSP</text>
                <text x="504" y="132">L</text>
                <text x="176" y="148">RX3</text>
                <text x="216" y="148">RX3</text>
                <text x="428" y="148">Opt.Rec.</text>
                <text x="504" y="148">C</text>
                <text x="36" y="164">100G</text>
                <text x="92" y="164">Ethernet</text>
                <text x="176" y="164">RX4</text>
                <text x="216" y="164">RX4</text>
                <text x="272" y="164">4</text>
                <text x="288" y="164">X</text>
                <text x="312" y="164">25G</text>
                <text x="344" y="164">NRZ</text>
                <text x="52" y="180">Physical</text>
                <text x="104" y="180">I/F</text>
                <text x="504" y="180">c</text>
                <text x="168" y="196">25G</text>
                <text x="200" y="196">NRZ</text>
                <text x="388" y="196">100G</text>
                <text x="424" y="196">PAM</text>
                <text x="504" y="196">o</text>
                <text x="504" y="212">n</text>
                <text x="64" y="228">(breakout</text>
                <text x="176" y="228">TX1</text>
                <text x="216" y="228">TX1</text>
                <text x="292" y="228">1X100G</text>
                <text x="340" y="228">PAM4</text>
                <text x="504" y="228">n</text>
                <text x="76" y="244">configuration)</text>
                <text x="176" y="244">TX2</text>
                <text x="216" y="244">TX2</text>
                <text x="428" y="244">Opt.Tras</text>
                <text x="504" y="244">e</text>
                <text x="176" y="260">TX3</text>
                <text x="216" y="260">TX3</text>
                <text x="304" y="260">Gearbox</text>
                <text x="504" y="260">c</text>
                <text x="176" y="276">TX4</text>
                <text x="216" y="276">TX4</text>
                <text x="148" y="340">Host</text>
                <text x="208" y="340">Interface</text>
                <text x="332" y="340">Line</text>
                <text x="392" y="340">Interface</text>
                <text x="124" y="356">(4x25G</text>
                <text x="172" y="356">host</text>
                <text x="232" y="356">channels)</text>
                <text x="320" y="356">(1x100G</text>
                <text x="372" y="356">line</text>
                <text x="428" y="356">channel)</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art"><![CDATA[
         Host                     Transceiver Module
 _________/\_________   ___________________/\___________________
/                    \ /                                        \

+---------------+              +------------+               
|               |<--RX1  RX1<--|            |                +--+
|               |<--RX2  RX2<--|     DSP    |   +--------+   |L |
|               |<--RX3  RX3<--|            |<--|Opt.Rec.|<--|C |
| 100G Ethernet |<--RX4  RX4<--| 4 X 25G NRZ|   +--------+   |  |
| Physical I/F  |              |            |                |c |
|               |  25G NRZ     |    <-->    | 100G PAM       |o |
|               |              |            |                |n |
|  (breakout    |-->TX1  TX1-->| 1X100G PAM4|   +--------+   |n |
| configuration)|-->TX2  TX2-->|            |-->|Opt.Tras|-->|e |
|               |-->TX3  TX3-->|  Gearbox   |   +--------+   |c |
|               |-->TX4  TX4-->|            |                +--+
+---------------+              +------------+     
                       ^                      ^
                       |                      |
                Host Interface         Line Interface
            (4x25G host channels)   (1x100G line channel)
]]></artwork>
        </artset>
      </figure>
      <t><xref target="fig-wdm-multi-channel"/> describes an implementation of a Wavelength-Division Multiplexing (WDM) based multi-channel optical pluggable trunk port (e.g., a 400G-LR4 port configured as a single 400GE interface).</t>
      <figure anchor="fig-wdm-multi-channel">
        <name>Example of a WDM multi-channel optical pluggable port</name>
        <artset>
          <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="624" width="528" viewBox="0 0 528 624" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 8,96 L 8,544" fill="none" stroke="black"/>
              <path d="M 120,96 L 120,544" fill="none" stroke="black"/>
              <path d="M 176,560 L 176,576" fill="none" stroke="black"/>
              <path d="M 232,96 L 232,544" fill="none" stroke="black"/>
              <path d="M 304,96 L 304,544" fill="none" stroke="black"/>
              <path d="M 320,560 L 320,576" fill="none" stroke="black"/>
              <path d="M 336,112 L 336,288" fill="none" stroke="black"/>
              <path d="M 336,352 L 336,528" fill="none" stroke="black"/>
              <path d="M 400,112 L 400,288" fill="none" stroke="black"/>
              <path d="M 400,352 L 400,528" fill="none" stroke="black"/>
              <path d="M 432,96 L 432,304" fill="none" stroke="black"/>
              <path d="M 432,336 L 432,544" fill="none" stroke="black"/>
              <path d="M 456,128 L 456,272" fill="none" stroke="black"/>
              <path d="M 456,368 L 456,512" fill="none" stroke="black"/>
              <path d="M 488,160 L 488,480" fill="none" stroke="black"/>
              <path d="M 520,160 L 520,480" fill="none" stroke="black"/>
              <path d="M 8,96 L 120,96" fill="none" stroke="black"/>
              <path d="M 232,96 L 304,96" fill="none" stroke="black"/>
              <path d="M 336,112 L 400,112" fill="none" stroke="black"/>
              <path d="M 128,128 L 144,128" fill="none" stroke="black"/>
              <path d="M 208,128 L 224,128" fill="none" stroke="black"/>
              <path d="M 312,128 L 328,128" fill="none" stroke="black"/>
              <path d="M 408,128 L 424,128" fill="none" stroke="black"/>
              <path d="M 128,144 L 144,144" fill="none" stroke="black"/>
              <path d="M 208,144 L 224,144" fill="none" stroke="black"/>
              <path d="M 336,144 L 400,144" fill="none" stroke="black"/>
              <path d="M 128,160 L 144,160" fill="none" stroke="black"/>
              <path d="M 208,160 L 224,160" fill="none" stroke="black"/>
              <path d="M 336,160 L 400,160" fill="none" stroke="black"/>
              <path d="M 488,160 L 520,160" fill="none" stroke="black"/>
              <path d="M 128,176 L 144,176" fill="none" stroke="black"/>
              <path d="M 208,176 L 224,176" fill="none" stroke="black"/>
              <path d="M 312,176 L 328,176" fill="none" stroke="black"/>
              <path d="M 408,176 L 424,176" fill="none" stroke="black"/>
              <path d="M 128,192 L 144,192" fill="none" stroke="black"/>
              <path d="M 208,192 L 224,192" fill="none" stroke="black"/>
              <path d="M 336,192 L 400,192" fill="none" stroke="black"/>
              <path d="M 128,208 L 144,208" fill="none" stroke="black"/>
              <path d="M 208,208 L 224,208" fill="none" stroke="black"/>
              <path d="M 336,208 L 400,208" fill="none" stroke="black"/>
              <path d="M 464,208 L 480,208" fill="none" stroke="black"/>
              <path d="M 128,224 L 144,224" fill="none" stroke="black"/>
              <path d="M 208,224 L 224,224" fill="none" stroke="black"/>
              <path d="M 312,224 L 328,224" fill="none" stroke="black"/>
              <path d="M 408,224 L 424,224" fill="none" stroke="black"/>
              <path d="M 128,240 L 144,240" fill="none" stroke="black"/>
              <path d="M 208,240 L 224,240" fill="none" stroke="black"/>
              <path d="M 336,240 L 400,240" fill="none" stroke="black"/>
              <path d="M 336,256 L 400,256" fill="none" stroke="black"/>
              <path d="M 312,272 L 328,272" fill="none" stroke="black"/>
              <path d="M 408,272 L 424,272" fill="none" stroke="black"/>
              <path d="M 336,288 L 400,288" fill="none" stroke="black"/>
              <path d="M 336,352 L 400,352" fill="none" stroke="black"/>
              <path d="M 312,368 L 328,368" fill="none" stroke="black"/>
              <path d="M 408,368 L 424,368" fill="none" stroke="black"/>
              <path d="M 336,384 L 400,384" fill="none" stroke="black"/>
              <path d="M 128,400 L 144,400" fill="none" stroke="black"/>
              <path d="M 208,400 L 224,400" fill="none" stroke="black"/>
              <path d="M 336,400 L 400,400" fill="none" stroke="black"/>
              <path d="M 128,416 L 144,416" fill="none" stroke="black"/>
              <path d="M 208,416 L 224,416" fill="none" stroke="black"/>
              <path d="M 312,416 L 328,416" fill="none" stroke="black"/>
              <path d="M 408,416 L 424,416" fill="none" stroke="black"/>
              <path d="M 128,432 L 144,432" fill="none" stroke="black"/>
              <path d="M 208,432 L 224,432" fill="none" stroke="black"/>
              <path d="M 336,432 L 400,432" fill="none" stroke="black"/>
              <path d="M 464,432 L 480,432" fill="none" stroke="black"/>
              <path d="M 128,448 L 144,448" fill="none" stroke="black"/>
              <path d="M 208,448 L 224,448" fill="none" stroke="black"/>
              <path d="M 336,448 L 400,448" fill="none" stroke="black"/>
              <path d="M 128,464 L 144,464" fill="none" stroke="black"/>
              <path d="M 208,464 L 224,464" fill="none" stroke="black"/>
              <path d="M 312,464 L 328,464" fill="none" stroke="black"/>
              <path d="M 408,464 L 424,464" fill="none" stroke="black"/>
              <path d="M 128,480 L 144,480" fill="none" stroke="black"/>
              <path d="M 208,480 L 224,480" fill="none" stroke="black"/>
              <path d="M 336,480 L 400,480" fill="none" stroke="black"/>
              <path d="M 488,480 L 520,480" fill="none" stroke="black"/>
              <path d="M 128,496 L 144,496" fill="none" stroke="black"/>
              <path d="M 208,496 L 224,496" fill="none" stroke="black"/>
              <path d="M 336,496 L 400,496" fill="none" stroke="black"/>
              <path d="M 128,512 L 144,512" fill="none" stroke="black"/>
              <path d="M 208,512 L 224,512" fill="none" stroke="black"/>
              <path d="M 312,512 L 328,512" fill="none" stroke="black"/>
              <path d="M 408,512 L 424,512" fill="none" stroke="black"/>
              <path d="M 336,528 L 400,528" fill="none" stroke="black"/>
              <path d="M 8,544 L 120,544" fill="none" stroke="black"/>
              <path d="M 232,544 L 304,544" fill="none" stroke="black"/>
              <path d="M 84,40 L 92,56" fill="none" stroke="black"/>
              <path d="M 156,56 L 160,64" fill="none" stroke="black"/>
              <path d="M 440,336 L 456,368" fill="none" stroke="black"/>
              <path d="M 348,40 L 356,56" fill="none" stroke="black"/>
              <path d="M 440,96 L 456,128" fill="none" stroke="black"/>
              <path d="M 516,56 L 520,64" fill="none" stroke="black"/>
              <path d="M 8,64 L 12,56" fill="none" stroke="black"/>
              <path d="M 76,56 L 84,40" fill="none" stroke="black"/>
              <path d="M 176,64 L 180,56" fill="none" stroke="black"/>
              <path d="M 340,56 L 348,40" fill="none" stroke="black"/>
              <path d="M 440,304 L 456,272" fill="none" stroke="black"/>
              <path d="M 440,544 L 456,512" fill="none" stroke="black"/>
              <path d="M 12,56 L 76,56" fill="none" stroke="black"/>
              <path d="M 92,56 L 156,56" fill="none" stroke="black"/>
              <path d="M 180,56 L 340,56" fill="none" stroke="black"/>
              <path d="M 356,56 L 516,56" fill="none" stroke="black"/>
              <polygon class="arrowhead" points="488,432 476,426.4 476,437.6" fill="black" transform="rotate(0,480,432)"/>
              <polygon class="arrowhead" points="472,208 460,202.4 460,213.6" fill="black" transform="rotate(180,464,208)"/>
              <polygon class="arrowhead" points="432,512 420,506.4 420,517.6" fill="black" transform="rotate(0,424,512)"/>
              <polygon class="arrowhead" points="432,464 420,458.4 420,469.6" fill="black" transform="rotate(0,424,464)"/>
              <polygon class="arrowhead" points="432,416 420,410.4 420,421.6" fill="black" transform="rotate(0,424,416)"/>
              <polygon class="arrowhead" points="432,368 420,362.4 420,373.6" fill="black" transform="rotate(0,424,368)"/>
              <polygon class="arrowhead" points="416,272 404,266.4 404,277.6" fill="black" transform="rotate(180,408,272)"/>
              <polygon class="arrowhead" points="416,224 404,218.4 404,229.6" fill="black" transform="rotate(180,408,224)"/>
              <polygon class="arrowhead" points="416,176 404,170.4 404,181.6" fill="black" transform="rotate(180,408,176)"/>
              <polygon class="arrowhead" points="416,128 404,122.4 404,133.6" fill="black" transform="rotate(180,408,128)"/>
              <polygon class="arrowhead" points="336,512 324,506.4 324,517.6" fill="black" transform="rotate(0,328,512)"/>
              <polygon class="arrowhead" points="336,464 324,458.4 324,469.6" fill="black" transform="rotate(0,328,464)"/>
              <polygon class="arrowhead" points="336,416 324,410.4 324,421.6" fill="black" transform="rotate(0,328,416)"/>
              <polygon class="arrowhead" points="336,368 324,362.4 324,373.6" fill="black" transform="rotate(0,328,368)"/>
              <polygon class="arrowhead" points="328,560 316,554.4 316,565.6" fill="black" transform="rotate(270,320,560)"/>
              <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,176 308,170.4 308,181.6" fill="black" transform="rotate(180,312,176)"/>
              <polygon class="arrowhead" points="320,128 308,122.4 308,133.6" fill="black" transform="rotate(180,312,128)"/>
              <polygon class="arrowhead" points="232,512 220,506.4 220,517.6" fill="black" transform="rotate(0,224,512)"/>
              <polygon class="arrowhead" points="232,496 220,490.4 220,501.6" fill="black" transform="rotate(0,224,496)"/>
              <polygon class="arrowhead" points="232,480 220,474.4 220,485.6" fill="black" transform="rotate(0,224,480)"/>
              <polygon class="arrowhead" points="232,464 220,458.4 220,469.6" fill="black" transform="rotate(0,224,464)"/>
              <polygon class="arrowhead" points="232,448 220,442.4 220,453.6" fill="black" transform="rotate(0,224,448)"/>
              <polygon class="arrowhead" points="232,432 220,426.4 220,437.6" fill="black" transform="rotate(0,224,432)"/>
              <polygon class="arrowhead" points="232,416 220,410.4 220,421.6" fill="black" transform="rotate(0,224,416)"/>
              <polygon class="arrowhead" points="232,400 220,394.4 220,405.6" fill="black" transform="rotate(0,224,400)"/>
              <polygon class="arrowhead" points="216,240 204,234.4 204,245.6" fill="black" transform="rotate(180,208,240)"/>
              <polygon class="arrowhead" points="216,224 204,218.4 204,229.6" fill="black" transform="rotate(180,208,224)"/>
              <polygon class="arrowhead" points="216,208 204,202.4 204,213.6" fill="black" transform="rotate(180,208,208)"/>
              <polygon class="arrowhead" points="216,192 204,186.4 204,197.6" fill="black" transform="rotate(180,208,192)"/>
              <polygon class="arrowhead" points="216,176 204,170.4 204,181.6" fill="black" transform="rotate(180,208,176)"/>
              <polygon class="arrowhead" points="216,160 204,154.4 204,165.6" fill="black" transform="rotate(180,208,160)"/>
              <polygon class="arrowhead" points="216,144 204,138.4 204,149.6" fill="black" transform="rotate(180,208,144)"/>
              <polygon class="arrowhead" points="216,128 204,122.4 204,133.6" fill="black" transform="rotate(180,208,128)"/>
              <polygon class="arrowhead" points="184,560 172,554.4 172,565.6" fill="black" transform="rotate(270,176,560)"/>
              <polygon class="arrowhead" points="152,512 140,506.4 140,517.6" fill="black" transform="rotate(0,144,512)"/>
              <polygon class="arrowhead" points="152,496 140,490.4 140,501.6" fill="black" transform="rotate(0,144,496)"/>
              <polygon class="arrowhead" points="152,480 140,474.4 140,485.6" fill="black" transform="rotate(0,144,480)"/>
              <polygon class="arrowhead" points="152,464 140,458.4 140,469.6" fill="black" transform="rotate(0,144,464)"/>
              <polygon class="arrowhead" points="152,448 140,442.4 140,453.6" fill="black" transform="rotate(0,144,448)"/>
              <polygon class="arrowhead" points="152,432 140,426.4 140,437.6" fill="black" transform="rotate(0,144,432)"/>
              <polygon class="arrowhead" points="152,416 140,410.4 140,421.6" fill="black" transform="rotate(0,144,416)"/>
              <polygon class="arrowhead" points="152,400 140,394.4 140,405.6" fill="black" transform="rotate(0,144,400)"/>
              <polygon class="arrowhead" points="136,240 124,234.4 124,245.6" fill="black" transform="rotate(180,128,240)"/>
              <polygon class="arrowhead" points="136,224 124,218.4 124,229.6" fill="black" transform="rotate(180,128,224)"/>
              <polygon class="arrowhead" points="136,208 124,202.4 124,213.6" fill="black" transform="rotate(180,128,208)"/>
              <polygon class="arrowhead" points="136,192 124,186.4 124,197.6" fill="black" transform="rotate(180,128,192)"/>
              <polygon class="arrowhead" points="136,176 124,170.4 124,181.6" fill="black" transform="rotate(180,128,176)"/>
              <polygon class="arrowhead" points="136,160 124,154.4 124,165.6" fill="black" transform="rotate(180,128,160)"/>
              <polygon class="arrowhead" points="136,144 124,138.4 124,149.6" fill="black" transform="rotate(180,128,144)"/>
              <polygon class="arrowhead" points="136,128 124,122.4 124,133.6" fill="black" transform="rotate(180,128,128)"/>
              <g class="text">
                <text x="84" y="36">Host</text>
                <text x="312" y="36">Transceiver</text>
                <text x="388" y="36">Module</text>
                <text x="160" y="132">RX1</text>
                <text x="192" y="132">RX1</text>
                <text x="368" y="132">Opt.RX1</text>
                <text x="440" y="132">D</text>
                <text x="160" y="148">RX2</text>
                <text x="192" y="148">RX2</text>
                <text x="440" y="148">E</text>
                <text x="160" y="164">RX3</text>
                <text x="192" y="164">RX3</text>
                <text x="440" y="164">M</text>
                <text x="160" y="180">RX4</text>
                <text x="192" y="180">RX4</text>
                <text x="368" y="180">Opt.RX2</text>
                <text x="440" y="180">U</text>
                <text x="504" y="180">d</text>
                <text x="160" y="196">RX5</text>
                <text x="192" y="196">RX5</text>
                <text x="440" y="196">X</text>
                <text x="504" y="196">u</text>
                <text x="160" y="212">RX6</text>
                <text x="192" y="212">RX6</text>
                <text x="248" y="212">8</text>
                <text x="264" y="212">X</text>
                <text x="284" y="212">50</text>
                <text x="504" y="212">p</text>
                <text x="160" y="228">RX7</text>
                <text x="192" y="228">RX7</text>
                <text x="260" y="228">PAM4</text>
                <text x="368" y="228">Opt.RX3</text>
                <text x="440" y="228">C</text>
                <text x="504" y="228">l</text>
                <text x="160" y="244">RX8</text>
                <text x="192" y="244">RX8</text>
                <text x="260" y="244">to</text>
                <text x="440" y="244">W</text>
                <text x="504" y="244">e</text>
                <text x="440" y="260">D</text>
                <text x="504" y="260">x</text>
                <text x="28" y="276">400G</text>
                <text x="84" y="276">Ethernet</text>
                <text x="240" y="276">4</text>
                <text x="256" y="276">X</text>
                <text x="284" y="276">100G</text>
                <text x="368" y="276">Opt.RX4</text>
                <text x="440" y="276">M</text>
                <text x="60" y="292">Physical</text>
                <text x="260" y="292">PAM4</text>
                <text x="504" y="292">L</text>
                <text x="56" y="308">Interfece</text>
                <text x="504" y="308">C</text>
                <text x="24" y="324">(no</text>
                <text x="76" y="324">breakout</text>
                <text x="52" y="340">config.)</text>
                <text x="504" y="340">c</text>
                <text x="504" y="356">o</text>
                <text x="264" y="372">Gearbox</text>
                <text x="368" y="372">Opt.TX1</text>
                <text x="504" y="372">n</text>
                <text x="440" y="388">M</text>
                <text x="504" y="388">n</text>
                <text x="160" y="404">TX1</text>
                <text x="192" y="404">TX1</text>
                <text x="440" y="404">U</text>
                <text x="504" y="404">e</text>
                <text x="160" y="420">TX2</text>
                <text x="192" y="420">TX2</text>
                <text x="368" y="420">Opt.TX2</text>
                <text x="440" y="420">X</text>
                <text x="504" y="420">c</text>
                <text x="160" y="436">TX3</text>
                <text x="192" y="436">TX3</text>
                <text x="504" y="436">t</text>
                <text x="160" y="452">TX4</text>
                <text x="192" y="452">TX4</text>
                <text x="440" y="452">C</text>
                <text x="504" y="452">o</text>
                <text x="160" y="468">TX5</text>
                <text x="192" y="468">TX5</text>
                <text x="368" y="468">Opt.TX3</text>
                <text x="440" y="468">W</text>
                <text x="504" y="468">r</text>
                <text x="160" y="484">TX6</text>
                <text x="192" y="484">TX6</text>
                <text x="440" y="484">D</text>
                <text x="160" y="500">TX7</text>
                <text x="192" y="500">TX7</text>
                <text x="440" y="500">M</text>
                <text x="160" y="516">TX8</text>
                <text x="192" y="516">TX8</text>
                <text x="368" y="516">Opt.TX4</text>
                <text x="124" y="596">Host</text>
                <text x="184" y="596">Interface</text>
                <text x="300" y="596">Line</text>
                <text x="360" y="596">Interface</text>
                <text x="100" y="612">(8x50G</text>
                <text x="148" y="612">host</text>
                <text x="208" y="612">channels)</text>
                <text x="288" y="612">(4x100G</text>
                <text x="336" y="612">ine</text>
                <text x="392" y="612">channels)</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art"><![CDATA[
        Host                     Transceiver Module
 ________/\________   ____________________/\____________________
/                  \ /                                          \

+-------------+             +--------+               |\
|             |             |        |   +-------+   | \
|             |<--RX1 RX1<--|        |<--|Opt.RX1|<--|D |
|             |<--RX2 RX2<--|        |   +-------+   |E |
|             |<--RX3 RX3<--|        |   +-------+   |M |   +---+
|             |<--RX4 RX4<--|        |<--|Opt.RX2|<--|U |   | d |
|             |<--RX5 RX5<--|        |   +-------+   |X |   | u |
|             |<--RX6 RX6<--| 8 X 50 |   +-------+   |  |<--| p |
|             |<--RX7 RX7<--| PAM4   |<--|Opt.RX3|<--|C |   | l |
|             |<--RX8 RX8<--|  to    |   +-------+   |W |   | e |
|             |             |        |   +-------+   |D |   | x |
|400G Ethernet|             |4 X 100G|<--|Opt.RX4|<--|M |   |   |
|  Physical   |             | PAM4   |   +-------+   | /    | L |
| Interfece   |             |        |               |/     | C |
|(no breakout |             |        |                      |   |
| config.)    |             |        |               |\     | c |
|             |             |        |   +-------+   | \    | o |
|             |             |Gearbox |-->|Opt.TX1|-->|  |   | n |
|             |             |        |   +-------+   |M |   | n |
|             |-->TX1 TX1-->|        |   +-------+   |U |   | e |
|             |-->TX2 TX2-->|        |-->|Opt.TX2|-->|X |   | c |
|             |-->TX3 TX3-->|        |   +-------+   |  |-->| t |
|             |-->TX4 TX4-->|        |   +-------+   |C |   | o |
|             |-->TX5 TX5-->|        |-->|Opt.TX3|-->|W |   | r |
|             |-->TX6 TX6-->|        |   +-------+   |D |   +---+
|             |-->TX7 TX7-->|        |   +-------+   |M |   
|             |-->TX8 TX8-->|        |-->|Opt.TX4|-->|  |
|             |             |        |   +-------+   | /
+-------------+             +--------+               |/
                     ^                 ^
                     |                 |
             Host Interface        Line Interface
         (8x50G host channels)  (4x100G ine channels)
]]></artwork>
        </artset>
      </figure>
      <t>In this example, since breakout is not supported, the four WDM channels cannot be modelled as breakout channels and are not relevant from inventory management perspective.</t>
      <t><xref target="fig-mpo-trunk"/> describes an implementation of a Multi-Fiber Push-on (MPO) trunk port (e.g., 400G-DR4 port configured as a single 400GE interface).</t>
      <figure anchor="fig-mpo-trunk">
        <name>Example of a MPO trunk port</name>
        <artset>
          <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="592" width="528" viewBox="0 0 528 592" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 8,96 L 8,512" fill="none" stroke="black"/>
              <path d="M 136,96 L 136,512" fill="none" stroke="black"/>
              <path d="M 192,528 L 192,544" fill="none" stroke="black"/>
              <path d="M 256,96 L 256,512" fill="none" stroke="black"/>
              <path d="M 360,96 L 360,512" fill="none" stroke="black"/>
              <path d="M 376,528 L 376,544" fill="none" stroke="black"/>
              <path d="M 392,112 L 392,288" fill="none" stroke="black"/>
              <path d="M 392,320 L 392,496" fill="none" stroke="black"/>
              <path d="M 464,112 L 464,288" fill="none" stroke="black"/>
              <path d="M 464,320 L 464,496" fill="none" stroke="black"/>
              <path d="M 496,96 L 496,512" fill="none" stroke="black"/>
              <path d="M 520,96 L 520,512" fill="none" stroke="black"/>
              <path d="M 8,96 L 136,96" fill="none" stroke="black"/>
              <path d="M 256,96 L 360,96" fill="none" stroke="black"/>
              <path d="M 496,96 L 520,96" fill="none" stroke="black"/>
              <path d="M 392,112 L 464,112" fill="none" stroke="black"/>
              <path d="M 144,128 L 160,128" fill="none" stroke="black"/>
              <path d="M 232,128 L 248,128" fill="none" stroke="black"/>
              <path d="M 368,128 L 384,128" fill="none" stroke="black"/>
              <path d="M 472,128 L 488,128" fill="none" stroke="black"/>
              <path d="M 144,144 L 160,144" fill="none" stroke="black"/>
              <path d="M 232,144 L 248,144" fill="none" stroke="black"/>
              <path d="M 392,144 L 464,144" fill="none" stroke="black"/>
              <path d="M 144,160 L 160,160" fill="none" stroke="black"/>
              <path d="M 232,160 L 248,160" fill="none" stroke="black"/>
              <path d="M 392,160 L 464,160" fill="none" stroke="black"/>
              <path d="M 144,176 L 160,176" fill="none" stroke="black"/>
              <path d="M 232,176 L 248,176" fill="none" stroke="black"/>
              <path d="M 368,176 L 384,176" fill="none" stroke="black"/>
              <path d="M 472,176 L 488,176" fill="none" stroke="black"/>
              <path d="M 144,192 L 160,192" fill="none" stroke="black"/>
              <path d="M 232,192 L 248,192" fill="none" stroke="black"/>
              <path d="M 392,192 L 464,192" fill="none" stroke="black"/>
              <path d="M 144,208 L 160,208" fill="none" stroke="black"/>
              <path d="M 232,208 L 248,208" fill="none" stroke="black"/>
              <path d="M 392,208 L 464,208" fill="none" stroke="black"/>
              <path d="M 144,224 L 160,224" fill="none" stroke="black"/>
              <path d="M 232,224 L 248,224" fill="none" stroke="black"/>
              <path d="M 368,224 L 384,224" fill="none" stroke="black"/>
              <path d="M 472,224 L 488,224" fill="none" stroke="black"/>
              <path d="M 144,240 L 160,240" fill="none" stroke="black"/>
              <path d="M 232,240 L 248,240" fill="none" stroke="black"/>
              <path d="M 392,240 L 464,240" fill="none" stroke="black"/>
              <path d="M 392,256 L 464,256" fill="none" stroke="black"/>
              <path d="M 368,272 L 384,272" fill="none" stroke="black"/>
              <path d="M 472,272 L 488,272" fill="none" stroke="black"/>
              <path d="M 392,288 L 464,288" fill="none" stroke="black"/>
              <path d="M 392,320 L 464,320" fill="none" stroke="black"/>
              <path d="M 368,336 L 384,336" fill="none" stroke="black"/>
              <path d="M 472,336 L 488,336" fill="none" stroke="black"/>
              <path d="M 392,352 L 464,352" fill="none" stroke="black"/>
              <path d="M 144,368 L 160,368" fill="none" stroke="black"/>
              <path d="M 232,368 L 248,368" fill="none" stroke="black"/>
              <path d="M 392,368 L 464,368" fill="none" stroke="black"/>
              <path d="M 144,384 L 160,384" fill="none" stroke="black"/>
              <path d="M 232,384 L 248,384" fill="none" stroke="black"/>
              <path d="M 368,384 L 384,384" fill="none" stroke="black"/>
              <path d="M 472,384 L 488,384" fill="none" stroke="black"/>
              <path d="M 144,400 L 160,400" fill="none" stroke="black"/>
              <path d="M 232,400 L 248,400" fill="none" stroke="black"/>
              <path d="M 392,400 L 464,400" fill="none" stroke="black"/>
              <path d="M 144,416 L 160,416" fill="none" stroke="black"/>
              <path d="M 232,416 L 248,416" fill="none" stroke="black"/>
              <path d="M 392,416 L 464,416" fill="none" stroke="black"/>
              <path d="M 144,432 L 160,432" fill="none" stroke="black"/>
              <path d="M 232,432 L 248,432" fill="none" stroke="black"/>
              <path d="M 368,432 L 384,432" fill="none" stroke="black"/>
              <path d="M 472,432 L 488,432" fill="none" stroke="black"/>
              <path d="M 144,448 L 160,448" fill="none" stroke="black"/>
              <path d="M 232,448 L 248,448" fill="none" stroke="black"/>
              <path d="M 392,448 L 464,448" fill="none" stroke="black"/>
              <path d="M 144,464 L 160,464" fill="none" stroke="black"/>
              <path d="M 232,464 L 248,464" fill="none" stroke="black"/>
              <path d="M 392,464 L 464,464" fill="none" stroke="black"/>
              <path d="M 144,480 L 160,480" fill="none" stroke="black"/>
              <path d="M 232,480 L 248,480" fill="none" stroke="black"/>
              <path d="M 368,480 L 384,480" fill="none" stroke="black"/>
              <path d="M 472,480 L 488,480" fill="none" stroke="black"/>
              <path d="M 392,496 L 464,496" fill="none" stroke="black"/>
              <path d="M 8,512 L 136,512" fill="none" stroke="black"/>
              <path d="M 256,512 L 360,512" fill="none" stroke="black"/>
              <path d="M 496,512 L 520,512" fill="none" stroke="black"/>
              <path d="M 92,40 L 100,56" fill="none" stroke="black"/>
              <path d="M 172,56 L 176,64" fill="none" stroke="black"/>
              <path d="M 356,40 L 364,56" fill="none" stroke="black"/>
              <path d="M 516,56 L 520,64" fill="none" stroke="black"/>
              <path d="M 8,64 L 12,56" fill="none" stroke="black"/>
              <path d="M 84,56 L 92,40" fill="none" stroke="black"/>
              <path d="M 192,64 L 196,56" fill="none" stroke="black"/>
              <path d="M 348,56 L 356,40" fill="none" stroke="black"/>
              <path d="M 12,56 L 84,56" fill="none" stroke="black"/>
              <path d="M 100,56 L 172,56" fill="none" stroke="black"/>
              <path d="M 196,56 L 348,56" fill="none" stroke="black"/>
              <path d="M 364,56 L 516,56" fill="none" stroke="black"/>
              <polygon class="arrowhead" points="496,480 484,474.4 484,485.6" fill="black" transform="rotate(0,488,480)"/>
              <polygon class="arrowhead" points="496,432 484,426.4 484,437.6" fill="black" transform="rotate(0,488,432)"/>
              <polygon class="arrowhead" points="496,384 484,378.4 484,389.6" fill="black" transform="rotate(0,488,384)"/>
              <polygon class="arrowhead" points="496,336 484,330.4 484,341.6" fill="black" transform="rotate(0,488,336)"/>
              <polygon class="arrowhead" points="480,272 468,266.4 468,277.6" fill="black" transform="rotate(180,472,272)"/>
              <polygon class="arrowhead" points="480,224 468,218.4 468,229.6" fill="black" transform="rotate(180,472,224)"/>
              <polygon class="arrowhead" points="480,176 468,170.4 468,181.6" fill="black" transform="rotate(180,472,176)"/>
              <polygon class="arrowhead" points="480,128 468,122.4 468,133.6" fill="black" transform="rotate(180,472,128)"/>
              <polygon class="arrowhead" points="392,480 380,474.4 380,485.6" fill="black" transform="rotate(0,384,480)"/>
              <polygon class="arrowhead" points="392,432 380,426.4 380,437.6" fill="black" transform="rotate(0,384,432)"/>
              <polygon class="arrowhead" points="392,384 380,378.4 380,389.6" fill="black" transform="rotate(0,384,384)"/>
              <polygon class="arrowhead" points="392,336 380,330.4 380,341.6" fill="black" transform="rotate(0,384,336)"/>
              <polygon class="arrowhead" points="384,528 372,522.4 372,533.6" fill="black" transform="rotate(270,376,528)"/>
              <polygon class="arrowhead" points="376,272 364,266.4 364,277.6" fill="black" transform="rotate(180,368,272)"/>
              <polygon class="arrowhead" points="376,224 364,218.4 364,229.6" fill="black" transform="rotate(180,368,224)"/>
              <polygon class="arrowhead" points="376,176 364,170.4 364,181.6" fill="black" transform="rotate(180,368,176)"/>
              <polygon class="arrowhead" points="376,128 364,122.4 364,133.6" fill="black" transform="rotate(180,368,128)"/>
              <polygon class="arrowhead" points="256,480 244,474.4 244,485.6" fill="black" transform="rotate(0,248,480)"/>
              <polygon class="arrowhead" points="256,464 244,458.4 244,469.6" fill="black" transform="rotate(0,248,464)"/>
              <polygon class="arrowhead" points="256,448 244,442.4 244,453.6" fill="black" transform="rotate(0,248,448)"/>
              <polygon class="arrowhead" points="256,432 244,426.4 244,437.6" fill="black" transform="rotate(0,248,432)"/>
              <polygon class="arrowhead" points="256,416 244,410.4 244,421.6" fill="black" transform="rotate(0,248,416)"/>
              <polygon class="arrowhead" points="256,400 244,394.4 244,405.6" fill="black" transform="rotate(0,248,400)"/>
              <polygon class="arrowhead" points="256,384 244,378.4 244,389.6" fill="black" transform="rotate(0,248,384)"/>
              <polygon class="arrowhead" points="256,368 244,362.4 244,373.6" fill="black" transform="rotate(0,248,368)"/>
              <polygon class="arrowhead" points="240,240 228,234.4 228,245.6" fill="black" transform="rotate(180,232,240)"/>
              <polygon class="arrowhead" points="240,224 228,218.4 228,229.6" fill="black" transform="rotate(180,232,224)"/>
              <polygon class="arrowhead" points="240,208 228,202.4 228,213.6" fill="black" transform="rotate(180,232,208)"/>
              <polygon class="arrowhead" points="240,192 228,186.4 228,197.6" fill="black" transform="rotate(180,232,192)"/>
              <polygon class="arrowhead" points="240,176 228,170.4 228,181.6" fill="black" transform="rotate(180,232,176)"/>
              <polygon class="arrowhead" points="240,160 228,154.4 228,165.6" fill="black" transform="rotate(180,232,160)"/>
              <polygon class="arrowhead" points="240,144 228,138.4 228,149.6" fill="black" transform="rotate(180,232,144)"/>
              <polygon class="arrowhead" points="240,128 228,122.4 228,133.6" fill="black" transform="rotate(180,232,128)"/>
              <polygon class="arrowhead" points="200,528 188,522.4 188,533.6" fill="black" transform="rotate(270,192,528)"/>
              <polygon class="arrowhead" points="168,480 156,474.4 156,485.6" fill="black" transform="rotate(0,160,480)"/>
              <polygon class="arrowhead" points="168,464 156,458.4 156,469.6" fill="black" transform="rotate(0,160,464)"/>
              <polygon class="arrowhead" points="168,448 156,442.4 156,453.6" fill="black" transform="rotate(0,160,448)"/>
              <polygon class="arrowhead" points="168,432 156,426.4 156,437.6" fill="black" transform="rotate(0,160,432)"/>
              <polygon class="arrowhead" points="168,416 156,410.4 156,421.6" fill="black" transform="rotate(0,160,416)"/>
              <polygon class="arrowhead" points="168,400 156,394.4 156,405.6" fill="black" transform="rotate(0,160,400)"/>
              <polygon class="arrowhead" points="168,384 156,378.4 156,389.6" fill="black" transform="rotate(0,160,384)"/>
              <polygon class="arrowhead" points="168,368 156,362.4 156,373.6" fill="black" transform="rotate(0,160,368)"/>
              <polygon class="arrowhead" points="152,240 140,234.4 140,245.6" fill="black" transform="rotate(180,144,240)"/>
              <polygon class="arrowhead" points="152,224 140,218.4 140,229.6" fill="black" transform="rotate(180,144,224)"/>
              <polygon class="arrowhead" points="152,208 140,202.4 140,213.6" fill="black" transform="rotate(180,144,208)"/>
              <polygon class="arrowhead" points="152,192 140,186.4 140,197.6" fill="black" transform="rotate(180,144,192)"/>
              <polygon class="arrowhead" points="152,176 140,170.4 140,181.6" fill="black" transform="rotate(180,144,176)"/>
              <polygon class="arrowhead" points="152,160 140,154.4 140,165.6" fill="black" transform="rotate(180,144,160)"/>
              <polygon class="arrowhead" points="152,144 140,138.4 140,149.6" fill="black" transform="rotate(180,144,144)"/>
              <polygon class="arrowhead" points="152,128 140,122.4 140,133.6" fill="black" transform="rotate(180,144,128)"/>
              <g class="text">
                <text x="92" y="36">Host</text>
                <text x="320" y="36">Transceiver</text>
                <text x="396" y="36">Module</text>
                <text x="176" y="132">RX1</text>
                <text x="216" y="132">RX1</text>
                <text x="428" y="132">Opt.RX.1</text>
                <text x="176" y="148">RX2</text>
                <text x="216" y="148">RX2</text>
                <text x="176" y="164">RX3</text>
                <text x="216" y="164">RX3</text>
                <text x="176" y="180">RX4</text>
                <text x="216" y="180">RX4</text>
                <text x="428" y="180">Opt.RX.2</text>
                <text x="176" y="196">RX5</text>
                <text x="216" y="196">RX5</text>
                <text x="176" y="212">RX6</text>
                <text x="216" y="212">RX6</text>
                <text x="272" y="212">8</text>
                <text x="288" y="212">X</text>
                <text x="308" y="212">50</text>
                <text x="340" y="212">PAM4</text>
                <text x="176" y="228">RX7</text>
                <text x="216" y="228">RX7</text>
                <text x="428" y="228">Opt.RX.3</text>
                <text x="176" y="244">RX8</text>
                <text x="216" y="244">RX8</text>
                <text x="308" y="244">to</text>
                <text x="504" y="244">M</text>
                <text x="36" y="260">400G</text>
                <text x="92" y="260">Ethernet</text>
                <text x="44" y="276">Physical</text>
                <text x="108" y="276">Interf</text>
                <text x="264" y="276">4</text>
                <text x="280" y="276">X</text>
                <text x="304" y="276">100</text>
                <text x="340" y="276">PAM4</text>
                <text x="428" y="276">Opt.RX.4</text>
                <text x="504" y="276">P</text>
                <text x="32" y="308">(no</text>
                <text x="84" y="308">breakout</text>
                <text x="504" y="308">O</text>
                <text x="76" y="324">configuration)</text>
                <text x="304" y="340">Gearbox</text>
                <text x="428" y="340">Opt.TX.1</text>
                <text x="504" y="340">1</text>
                <text x="176" y="372">TX1</text>
                <text x="216" y="372">TX1</text>
                <text x="504" y="372">2</text>
                <text x="176" y="388">TX2</text>
                <text x="216" y="388">TX2</text>
                <text x="428" y="388">Opt.TX.2</text>
                <text x="176" y="404">TX3</text>
                <text x="216" y="404">TX3</text>
                <text x="176" y="420">TX4</text>
                <text x="216" y="420">TX4</text>
                <text x="176" y="436">TX5</text>
                <text x="216" y="436">TX5</text>
                <text x="428" y="436">Opt.TX.3</text>
                <text x="176" y="452">TX6</text>
                <text x="216" y="452">TX6</text>
                <text x="176" y="468">TX7</text>
                <text x="216" y="468">TX7</text>
                <text x="176" y="484">TX8</text>
                <text x="216" y="484">TX8</text>
                <text x="428" y="484">Opt.TX.4</text>
                <text x="148" y="564">Host</text>
                <text x="208" y="564">Interface</text>
                <text x="332" y="564">Line</text>
                <text x="392" y="564">Interface</text>
                <text x="124" y="580">(8x50G</text>
                <text x="172" y="580">host</text>
                <text x="232" y="580">channels)</text>
                <text x="320" y="580">(4x100G</text>
                <text x="372" y="580">line</text>
                <text x="432" y="580">channels)</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art"><![CDATA[
         Host                     Transceiver Module
 _________/\_________   ___________________/\___________________
/                    \ /                                        \

+---------------+              +------------+                +--+
|               |              |            |   +--------+   |  |
|               |<--RX1  RX1<--|            |<--|Opt.RX.1|<--|  |
|               |<--RX2  RX2<--|            |   +--------+   |  |
|               |<--RX3  RX3<--|            |   +--------+   |  |
|               |<--RX4  RX4<--|            |<--|Opt.RX.2|<--|  |
|               |<--RX5  RX5<--|            |   +--------+   |  |
|               |<--RX6  RX6<--| 8 X 50 PAM4|   +--------+   |  |
|               |<--RX7  RX7<--|            |<--|Opt.RX.3|<--|  |
|               |<--RX8  RX8<--|     to     |   +--------+   |M |
| 400G Ethernet |              |            |   +--------+   |  |
|Physical Interf|              |4 X 100 PAM4|<--|Opt.RX.4|<--|P |
|               |              |            |   +--------+   |  |
| (no breakout  |              |            |                |O |
| configuration)|              |            |   +--------+   |  |
|               |              |  Gearbox   |-->|Opt.TX.1|-->|1 |
|               |              |            |   +--------+   |  |
|               |-->TX1  TX1-->|            |   +--------+   |2 |
|               |-->TX2  TX2-->|            |-->|Opt.TX.2|-->|  |
|               |-->TX3  TX3-->|            |   +--------+   |  |
|               |-->TX4  TX4-->|            |   +--------+   |  |
|               |-->TX5  TX5-->|            |-->|Opt.TX.3|-->|  |
|               |-->TX6  TX6-->|            |   +--------+   |  |
|               |-->TX7  TX7-->|            |   +--------+   |  |
|               |-->TX8  TX8-->|            |-->|Opt.TX.4|-->|  |
|               |              |            |   +--------+   |  |
+---------------+              +------------+                +--+
                       ^                      ^
                       |                      |
                Host Interface         Line Interface
            (8x50G host channels)   (4x100G line channels)
]]></artwork>
        </artset>
      </figure>
      <t>If this MPO port cannot support breakouts, the four line channels cannot be modelled as breakout channels and are not relevant from inventory management perspective. From a network inventory perspective, there is no difference between single-channel ports and MPO trunk ports which do not support port breakouts.</t>
      <t>Instead, the MPO port can support breakouts, the four line channels are reported as breakout channels because, as describe in <xref target="ports"/>, the breakout channels represent the capability of the port to support breakout, independently on how the port is configured (trunk or breakout).</t>
      <t><xref target="fig-mpo-breakout"/> describes an implementation of a MPO breakout port (e.g., 400G-DR4 port configured as 4x100GE interfaces).</t>
      <figure anchor="fig-mpo-breakout">
        <name>Example of a MPO breakout port</name>
        <artset>
          <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="592" width="528" viewBox="0 0 528 592" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 8,96 L 8,176" fill="none" stroke="black"/>
              <path d="M 8,208 L 8,288" fill="none" stroke="black"/>
              <path d="M 8,320 L 8,400" fill="none" stroke="black"/>
              <path d="M 8,432 L 8,512" fill="none" stroke="black"/>
              <path d="M 136,96 L 136,176" fill="none" stroke="black"/>
              <path d="M 136,208 L 136,288" fill="none" stroke="black"/>
              <path d="M 136,320 L 136,400" fill="none" stroke="black"/>
              <path d="M 136,432 L 136,512" fill="none" stroke="black"/>
              <path d="M 192,528 L 192,544" fill="none" stroke="black"/>
              <path d="M 256,96 L 256,512" fill="none" stroke="black"/>
              <path d="M 360,96 L 360,512" fill="none" stroke="black"/>
              <path d="M 376,528 L 376,544" fill="none" stroke="black"/>
              <path d="M 392,112 L 392,288" fill="none" stroke="black"/>
              <path d="M 392,320 L 392,496" fill="none" stroke="black"/>
              <path d="M 464,112 L 464,288" fill="none" stroke="black"/>
              <path d="M 464,320 L 464,496" fill="none" stroke="black"/>
              <path d="M 496,96 L 496,512" fill="none" stroke="black"/>
              <path d="M 520,96 L 520,512" fill="none" stroke="black"/>
              <path d="M 8,96 L 136,96" fill="none" stroke="black"/>
              <path d="M 256,96 L 360,96" fill="none" stroke="black"/>
              <path d="M 496,96 L 520,96" fill="none" stroke="black"/>
              <path d="M 144,112 L 160,112" fill="none" stroke="black"/>
              <path d="M 232,112 L 248,112" fill="none" stroke="black"/>
              <path d="M 392,112 L 464,112" fill="none" stroke="black"/>
              <path d="M 144,128 L 160,128" fill="none" stroke="black"/>
              <path d="M 232,128 L 248,128" fill="none" stroke="black"/>
              <path d="M 368,128 L 384,128" fill="none" stroke="black"/>
              <path d="M 472,128 L 488,128" fill="none" stroke="black"/>
              <path d="M 144,144 L 160,144" fill="none" stroke="black"/>
              <path d="M 392,144 L 464,144" fill="none" stroke="black"/>
              <path d="M 144,160 L 160,160" fill="none" stroke="black"/>
              <path d="M 232,160 L 248,160" fill="none" stroke="black"/>
              <path d="M 392,160 L 464,160" fill="none" stroke="black"/>
              <path d="M 8,176 L 136,176" fill="none" stroke="black"/>
              <path d="M 232,176 L 248,176" fill="none" stroke="black"/>
              <path d="M 368,176 L 384,176" fill="none" stroke="black"/>
              <path d="M 472,176 L 488,176" fill="none" stroke="black"/>
              <path d="M 392,192 L 464,192" fill="none" stroke="black"/>
              <path d="M 8,208 L 136,208" fill="none" stroke="black"/>
              <path d="M 232,208 L 248,208" fill="none" stroke="black"/>
              <path d="M 392,208 L 464,208" fill="none" stroke="black"/>
              <path d="M 144,224 L 160,224" fill="none" stroke="black"/>
              <path d="M 232,224 L 248,224" fill="none" stroke="black"/>
              <path d="M 368,224 L 384,224" fill="none" stroke="black"/>
              <path d="M 472,224 L 488,224" fill="none" stroke="black"/>
              <path d="M 144,240 L 160,240" fill="none" stroke="black"/>
              <path d="M 392,240 L 464,240" fill="none" stroke="black"/>
              <path d="M 144,256 L 160,256" fill="none" stroke="black"/>
              <path d="M 232,256 L 248,256" fill="none" stroke="black"/>
              <path d="M 392,256 L 464,256" fill="none" stroke="black"/>
              <path d="M 144,272 L 160,272" fill="none" stroke="black"/>
              <path d="M 232,272 L 248,272" fill="none" stroke="black"/>
              <path d="M 368,272 L 384,272" fill="none" stroke="black"/>
              <path d="M 472,272 L 488,272" fill="none" stroke="black"/>
              <path d="M 8,288 L 136,288" fill="none" stroke="black"/>
              <path d="M 392,288 L 464,288" fill="none" stroke="black"/>
              <path d="M 8,320 L 136,320" fill="none" stroke="black"/>
              <path d="M 232,320 L 248,320" fill="none" stroke="black"/>
              <path d="M 392,320 L 464,320" fill="none" stroke="black"/>
              <path d="M 144,336 L 160,336" fill="none" stroke="black"/>
              <path d="M 232,336 L 248,336" fill="none" stroke="black"/>
              <path d="M 368,336 L 384,336" fill="none" stroke="black"/>
              <path d="M 472,336 L 488,336" fill="none" stroke="black"/>
              <path d="M 144,352 L 160,352" fill="none" stroke="black"/>
              <path d="M 392,352 L 464,352" fill="none" stroke="black"/>
              <path d="M 144,368 L 160,368" fill="none" stroke="black"/>
              <path d="M 232,368 L 248,368" fill="none" stroke="black"/>
              <path d="M 392,368 L 464,368" fill="none" stroke="black"/>
              <path d="M 144,384 L 160,384" fill="none" stroke="black"/>
              <path d="M 232,384 L 248,384" fill="none" stroke="black"/>
              <path d="M 368,384 L 384,384" fill="none" stroke="black"/>
              <path d="M 472,384 L 488,384" fill="none" stroke="black"/>
              <path d="M 8,400 L 136,400" fill="none" stroke="black"/>
              <path d="M 392,400 L 464,400" fill="none" stroke="black"/>
              <path d="M 232,416 L 248,416" fill="none" stroke="black"/>
              <path d="M 392,416 L 464,416" fill="none" stroke="black"/>
              <path d="M 8,432 L 136,432" fill="none" stroke="black"/>
              <path d="M 232,432 L 248,432" fill="none" stroke="black"/>
              <path d="M 368,432 L 384,432" fill="none" stroke="black"/>
              <path d="M 472,432 L 488,432" fill="none" stroke="black"/>
              <path d="M 144,448 L 160,448" fill="none" stroke="black"/>
              <path d="M 392,448 L 464,448" fill="none" stroke="black"/>
              <path d="M 144,464 L 160,464" fill="none" stroke="black"/>
              <path d="M 232,464 L 248,464" fill="none" stroke="black"/>
              <path d="M 392,464 L 464,464" fill="none" stroke="black"/>
              <path d="M 144,480 L 160,480" fill="none" stroke="black"/>
              <path d="M 232,480 L 248,480" fill="none" stroke="black"/>
              <path d="M 368,480 L 384,480" fill="none" stroke="black"/>
              <path d="M 472,480 L 488,480" fill="none" stroke="black"/>
              <path d="M 144,496 L 160,496" fill="none" stroke="black"/>
              <path d="M 392,496 L 464,496" fill="none" stroke="black"/>
              <path d="M 8,512 L 136,512" fill="none" stroke="black"/>
              <path d="M 256,512 L 360,512" fill="none" stroke="black"/>
              <path d="M 496,512 L 520,512" fill="none" stroke="black"/>
              <path d="M 92,40 L 100,56" fill="none" stroke="black"/>
              <path d="M 172,56 L 176,64" fill="none" stroke="black"/>
              <path d="M 356,40 L 364,56" fill="none" stroke="black"/>
              <path d="M 516,56 L 520,64" fill="none" stroke="black"/>
              <path d="M 8,64 L 12,56" fill="none" stroke="black"/>
              <path d="M 84,56 L 92,40" fill="none" stroke="black"/>
              <path d="M 192,64 L 196,56" fill="none" stroke="black"/>
              <path d="M 348,56 L 356,40" fill="none" stroke="black"/>
              <path d="M 12,56 L 84,56" fill="none" stroke="black"/>
              <path d="M 100,56 L 172,56" fill="none" stroke="black"/>
              <path d="M 196,56 L 348,56" fill="none" stroke="black"/>
              <path d="M 364,56 L 516,56" fill="none" stroke="black"/>
              <polygon class="arrowhead" points="496,480 484,474.4 484,485.6" fill="black" transform="rotate(0,488,480)"/>
              <polygon class="arrowhead" points="496,432 484,426.4 484,437.6" fill="black" transform="rotate(0,488,432)"/>
              <polygon class="arrowhead" points="496,384 484,378.4 484,389.6" fill="black" transform="rotate(0,488,384)"/>
              <polygon class="arrowhead" points="496,336 484,330.4 484,341.6" fill="black" transform="rotate(0,488,336)"/>
              <polygon class="arrowhead" points="480,272 468,266.4 468,277.6" fill="black" transform="rotate(180,472,272)"/>
              <polygon class="arrowhead" points="480,224 468,218.4 468,229.6" fill="black" transform="rotate(180,472,224)"/>
              <polygon class="arrowhead" points="480,176 468,170.4 468,181.6" fill="black" transform="rotate(180,472,176)"/>
              <polygon class="arrowhead" points="480,128 468,122.4 468,133.6" fill="black" transform="rotate(180,472,128)"/>
              <polygon class="arrowhead" points="392,480 380,474.4 380,485.6" fill="black" transform="rotate(0,384,480)"/>
              <polygon class="arrowhead" points="392,432 380,426.4 380,437.6" fill="black" transform="rotate(0,384,432)"/>
              <polygon class="arrowhead" points="392,384 380,378.4 380,389.6" fill="black" transform="rotate(0,384,384)"/>
              <polygon class="arrowhead" points="392,336 380,330.4 380,341.6" fill="black" transform="rotate(0,384,336)"/>
              <polygon class="arrowhead" points="384,528 372,522.4 372,533.6" fill="black" transform="rotate(270,376,528)"/>
              <polygon class="arrowhead" points="376,272 364,266.4 364,277.6" fill="black" transform="rotate(180,368,272)"/>
              <polygon class="arrowhead" points="376,224 364,218.4 364,229.6" fill="black" transform="rotate(180,368,224)"/>
              <polygon class="arrowhead" points="376,176 364,170.4 364,181.6" fill="black" transform="rotate(180,368,176)"/>
              <polygon class="arrowhead" points="376,128 364,122.4 364,133.6" fill="black" transform="rotate(180,368,128)"/>
              <polygon class="arrowhead" points="256,480 244,474.4 244,485.6" fill="black" transform="rotate(0,248,480)"/>
              <polygon class="arrowhead" points="256,464 244,458.4 244,469.6" fill="black" transform="rotate(0,248,464)"/>
              <polygon class="arrowhead" points="256,432 244,426.4 244,437.6" fill="black" transform="rotate(0,248,432)"/>
              <polygon class="arrowhead" points="256,416 244,410.4 244,421.6" fill="black" transform="rotate(0,248,416)"/>
              <polygon class="arrowhead" points="256,384 244,378.4 244,389.6" fill="black" transform="rotate(0,248,384)"/>
              <polygon class="arrowhead" points="256,368 244,362.4 244,373.6" fill="black" transform="rotate(0,248,368)"/>
              <polygon class="arrowhead" points="256,336 244,330.4 244,341.6" fill="black" transform="rotate(0,248,336)"/>
              <polygon class="arrowhead" points="256,320 244,314.4 244,325.6" fill="black" transform="rotate(0,248,320)"/>
              <polygon class="arrowhead" points="240,272 228,266.4 228,277.6" fill="black" transform="rotate(180,232,272)"/>
              <polygon class="arrowhead" points="240,256 228,250.4 228,261.6" fill="black" transform="rotate(180,232,256)"/>
              <polygon class="arrowhead" points="240,224 228,218.4 228,229.6" fill="black" transform="rotate(180,232,224)"/>
              <polygon class="arrowhead" points="240,208 228,202.4 228,213.6" fill="black" transform="rotate(180,232,208)"/>
              <polygon class="arrowhead" points="240,176 228,170.4 228,181.6" fill="black" transform="rotate(180,232,176)"/>
              <polygon class="arrowhead" points="240,160 228,154.4 228,165.6" fill="black" transform="rotate(180,232,160)"/>
              <polygon class="arrowhead" points="240,128 228,122.4 228,133.6" fill="black" transform="rotate(180,232,128)"/>
              <polygon class="arrowhead" points="240,112 228,106.4 228,117.6" fill="black" transform="rotate(180,232,112)"/>
              <polygon class="arrowhead" points="200,528 188,522.4 188,533.6" fill="black" transform="rotate(270,192,528)"/>
              <polygon class="arrowhead" points="168,496 156,490.4 156,501.6" fill="black" transform="rotate(0,160,496)"/>
              <polygon class="arrowhead" points="168,480 156,474.4 156,485.6" fill="black" transform="rotate(0,160,480)"/>
              <polygon class="arrowhead" points="168,384 156,378.4 156,389.6" fill="black" transform="rotate(0,160,384)"/>
              <polygon class="arrowhead" points="168,368 156,362.4 156,373.6" fill="black" transform="rotate(0,160,368)"/>
              <polygon class="arrowhead" points="168,272 156,266.4 156,277.6" fill="black" transform="rotate(0,160,272)"/>
              <polygon class="arrowhead" points="168,256 156,250.4 156,261.6" fill="black" transform="rotate(0,160,256)"/>
              <polygon class="arrowhead" points="168,160 156,154.4 156,165.6" fill="black" transform="rotate(0,160,160)"/>
              <polygon class="arrowhead" points="168,144 156,138.4 156,149.6" fill="black" transform="rotate(0,160,144)"/>
              <polygon class="arrowhead" points="152,464 140,458.4 140,469.6" fill="black" transform="rotate(180,144,464)"/>
              <polygon class="arrowhead" points="152,448 140,442.4 140,453.6" fill="black" transform="rotate(180,144,448)"/>
              <polygon class="arrowhead" points="152,352 140,346.4 140,357.6" fill="black" transform="rotate(180,144,352)"/>
              <polygon class="arrowhead" points="152,336 140,330.4 140,341.6" fill="black" transform="rotate(180,144,336)"/>
              <polygon class="arrowhead" points="152,240 140,234.4 140,245.6" fill="black" transform="rotate(180,144,240)"/>
              <polygon class="arrowhead" points="152,224 140,218.4 140,229.6" fill="black" transform="rotate(180,144,224)"/>
              <polygon class="arrowhead" points="152,128 140,122.4 140,133.6" fill="black" transform="rotate(180,144,128)"/>
              <polygon class="arrowhead" points="152,112 140,106.4 140,117.6" fill="black" transform="rotate(180,144,112)"/>
              <g class="text">
                <text x="92" y="36">Host</text>
                <text x="320" y="36">Transceiver</text>
                <text x="396" y="36">Module</text>
                <text x="44" y="116">100G</text>
                <text x="84" y="116">Eth.</text>
                <text x="176" y="116">RX1</text>
                <text x="216" y="116">RX1</text>
                <text x="44" y="132">Physical</text>
                <text x="96" y="132">I/F</text>
                <text x="124" y="132">#1</text>
                <text x="176" y="132">RX2</text>
                <text x="216" y="132">RX2</text>
                <text x="428" y="132">Opt.RX.1</text>
                <text x="56" y="148">(breakout</text>
                <text x="176" y="148">TX1</text>
                <text x="76" y="164">configuration)</text>
                <text x="176" y="164">TX2</text>
                <text x="216" y="164">RX3</text>
                <text x="216" y="180">RX4</text>
                <text x="428" y="180">Opt.RX.2</text>
                <text x="216" y="212">RX5</text>
                <text x="272" y="212">8</text>
                <text x="288" y="212">X</text>
                <text x="308" y="212">50</text>
                <text x="340" y="212">PAM4</text>
                <text x="44" y="228">100G</text>
                <text x="84" y="228">Eth.</text>
                <text x="176" y="228">RX3</text>
                <text x="216" y="228">RX6</text>
                <text x="428" y="228">Opt.RX.3</text>
                <text x="44" y="244">Physical</text>
                <text x="96" y="244">I/F</text>
                <text x="124" y="244">#2</text>
                <text x="176" y="244">RX4</text>
                <text x="308" y="244">to</text>
                <text x="504" y="244">M</text>
                <text x="56" y="260">(breakout</text>
                <text x="176" y="260">TX3</text>
                <text x="216" y="260">RX7</text>
                <text x="76" y="276">configuration)</text>
                <text x="176" y="276">TX4</text>
                <text x="216" y="276">RX8</text>
                <text x="264" y="276">4</text>
                <text x="280" y="276">X</text>
                <text x="304" y="276">100</text>
                <text x="340" y="276">PAM4</text>
                <text x="428" y="276">Opt.RX.4</text>
                <text x="504" y="276">P</text>
                <text x="504" y="308">O</text>
                <text x="216" y="324">TX1</text>
                <text x="44" y="340">100G</text>
                <text x="84" y="340">Eth.</text>
                <text x="176" y="340">RX5</text>
                <text x="216" y="340">TX2</text>
                <text x="304" y="340">Gearbox</text>
                <text x="428" y="340">Opt.TX.1</text>
                <text x="504" y="340">1</text>
                <text x="44" y="356">Physical</text>
                <text x="96" y="356">I/F</text>
                <text x="124" y="356">#3</text>
                <text x="176" y="356">RX6</text>
                <text x="56" y="372">(breakout</text>
                <text x="176" y="372">TX5</text>
                <text x="216" y="372">TX3</text>
                <text x="504" y="372">2</text>
                <text x="76" y="388">configuration)</text>
                <text x="176" y="388">TX6</text>
                <text x="216" y="388">TX4</text>
                <text x="428" y="388">Opt.TX.2</text>
                <text x="216" y="420">TX5</text>
                <text x="216" y="436">TX6</text>
                <text x="428" y="436">Opt.TX.3</text>
                <text x="44" y="452">100G</text>
                <text x="84" y="452">Eth.</text>
                <text x="176" y="452">RX7</text>
                <text x="44" y="468">Physical</text>
                <text x="96" y="468">I/F</text>
                <text x="124" y="468">#4</text>
                <text x="176" y="468">RX8</text>
                <text x="216" y="468">TX7</text>
                <text x="56" y="484">(breakout</text>
                <text x="176" y="484">TX7</text>
                <text x="216" y="484">TX8</text>
                <text x="428" y="484">Opt.TX.4</text>
                <text x="76" y="500">configuration)</text>
                <text x="176" y="500">TX8</text>
                <text x="148" y="564">Host</text>
                <text x="208" y="564">Interface</text>
                <text x="332" y="564">Line</text>
                <text x="392" y="564">Interface</text>
                <text x="124" y="580">(8x50G</text>
                <text x="172" y="580">host</text>
                <text x="232" y="580">channels)</text>
                <text x="320" y="580">(4x100G</text>
                <text x="372" y="580">line</text>
                <text x="432" y="580">channels)</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art"><![CDATA[
         Host                     Transceiver Module
 _________/\_________   ___________________/\___________________
/                    \ /                                        \

+---------------+              +------------+                +--+
|  100G Eth.    |<--RX1  RX1<--|            |   +--------+   |  |
|Physical I/F #1|<--RX2  RX2<--|            |<--|Opt.RX.1|<--|  |
| (breakout     |-->TX1        |            |   +--------+   |  |
| configuration)|-->TX2  RX3<--|            |   +--------+   |  |
+---------------+        RX4<--|            |<--|Opt.RX.2|<--|  |
                               |            |   +--------+   |  |
+---------------+        RX5<--| 8 X 50 PAM4|   +--------+   |  |
|  100G Eth.    |<--RX3  RX6<--|            |<--|Opt.RX.3|<--|  |
|Physical I/F #2|<--RX4        |     to     |   +--------+   |M |
| (breakout     |-->TX3  RX7<--|            |   +--------+   |  |
| configuration)|-->TX4  RX8<--|4 X 100 PAM4|<--|Opt.RX.4|<--|P |
+---------------+              |            |   +--------+   |  |
                               |            |                |O |
+---------------+        TX1-->|            |   +--------+   |  |
|  100G Eth.    |<--RX5  TX2-->|  Gearbox   |-->|Opt.TX.1|-->|1 |
|Physical I/F #3|<--RX6        |            |   +--------+   |  |
| (breakout     |-->TX5  TX3-->|            |   +--------+   |2 |
| configuration)|-->TX6  TX4-->|            |-->|Opt.TX.2|-->|  |
+---------------+              |            |   +--------+   |  |
                         TX5-->|            |   +--------+   |  |
+---------------+        TX6-->|            |-->|Opt.TX.3|-->|  |
|  100G Eth.    |<--RX7        |            |   +--------+   |  |
|Physical I/F #4|<--RX8  TX7-->|            |   +--------+   |  |
| (breakout     |-->TX7  TX8-->|            |-->|Opt.TX.4|-->|  |
| configuration)|-->TX8        |            |   +--------+   |  |
+---------------+              +------------+                +--+
                       ^                      ^
                       |                      |
                Host Interface         Line Interface
            (8x50G host channels)   (4x100G line channels)
]]></artwork>
        </artset>
      </figure>
      <t>In this example, the four line channels are reported as breakout channels because the port shall support breakout in order to be configured as a breakout port.</t>
      <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" model to describe a single board, as shown in <xref target="fig-board"/>, with seven different types of ports, transceivers and breakouts configurations:</t>
        <ol spacing="normal" type="1"><li>
            <t>An integrated port (non pluggable), as shown in <xref target="fig-board"/>;</t>
          </li>
          <li>
            <t>An empty port, as shown in <xref target="fig-board"/>;</t>
          </li>
          <li>
            <t>A single channel optical pluggable port, as shown in <xref target="fig-board"/> and <xref target="fig-single-channel"/>;</t>
          </li>
          <li>
            <t>A WDM based multi-channel optical pluggable port, as shown in <xref target="fig-board"/> and <xref target="fig-wdm-multi-channel"/>;</t>
          </li>
          <li>
            <t>An MPO trunk port, as shown in <xref target="fig-board"/> and <xref target="fig-mpo-trunk"/>, which does not support port breakouts;</t>
          </li>
          <li>
            <t>An MPO trunk port, as shown in <xref target="fig-board"/> and <xref target="fig-mpo-trunk"/>, which can not support port breakouts but it has been configured as a trunk port,</t>
          </li>
          <li>
            <t>An MPO breakout port, as shown in <xref target="fig-board"/> and <xref target="fig-mpo-breakout"/>.</t>
          </li>
        </ol>
        <t>Note: as described in <xref target="ports"/>, reporting whether an MPO port is configured as a trunk or as a breakout port, is outside the scope of the base network inventory model.</t>
        <artwork type="ascii-art"><![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 ports and \
                                                         breakouts.",
          "components": {
            "component": [
              {
                "component-id": "board-1",
                "class": "iana-hardware:module",
                "description": "Network element example with ports \
                                                      and breakouts."
              },
              {
                "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": "transceiver-module-1",
                "class": "ietf-network-inventory:transceiver-module",
                "description": "Example of an integrated (non-\
                                                   pluggable) port.",
                "parent": "port-1",
                "is-fru": false
              },
              {
                "component-id": "port-2",
                "class": "iana-hardware:port",
                "description": "Example of an empty port.",
                "parent": "board-1",
                "parent-rel-pos": 2
              },
              {
                "component-id": "port-3",
                "class": "iana-hardware:port",
                "description": "Example of a single channel optical \
                                                    pluggable port.",
                "parent": "board-1",
                "parent-rel-pos": 3
              },
              {
                "component-id": "transceiver-module-3",
                "class": "ietf-network-inventory:transceiver-module",
                "description": "Example of a single channel optical \
                                                    pluggable port.",
                "parent": "port-3",
                "is-fru": true
              },
              {
                "component-id": "port-4",
                "class": "iana-hardware:port",
                "description": "Example of a WDM multi-channel \
                                                    pluggable port.",
                "parent": "board-1",
                "parent-rel-pos": 4
              },
              {
                "component-id": "transceiver-module-4",
                "class": "ietf-network-inventory:transceiver-module",
                "description": "Example of a WDM multi-channel \
                                                    pluggable port.",
                "parent": "port-4",
                "is-fru": true
              },
              {
                "component-id": "port-5",
                "class": "iana-hardware:port",
                "description": "Example of an optical MPO pluggable \
                             trunk port (not supporting breakouts).",
                "parent": "board-1",
                "parent-rel-pos": 5
              },
              {
                "component-id": "transceiver-module-5",
                "class": "ietf-network-inventory:transceiver-module",
                "description": "Example of an optical MPO pluggable \
                             trunk port (not supporting breakouts).",
                "parent": "port-5",
                "is-fru": true
              },
              {
                "component-id": "port-6",
                "class": "iana-hardware:port",
                "description": "Example of an optical MPO pluggable \
                                 trunk port (supporting breakouts).",
                "parent": "board-1",
                "parent-rel-pos": 6
              },
              {
                "component-id": "transceiver-module-6",
                "class": "ietf-network-inventory:transceiver-module",
                "description": "Example of an optical MPO pluggable \
                                 trunk port (supporting breakouts).",
                "parent": "port-6",
                "is-fru": true,
                "transceiver-module-specific-info": {
                  "breakout-channels": {
                    "breakout-channel": [
                      {
                        "channel-id": 1
                      },
                      {
                        "channel-id": 2
                      },
                      {
                        "channel-id": 3
                      },
                      {
                        "channel-id": 4
                      }
                    ]
                  }
                }
              },
              {
                "component-id": "port-7",
                "class": "iana-hardware:port",
                "description": "Example of an optical MPO pluggable \
                                                     breakout port.",
                "parent": "board-1",
                "parent-rel-pos": 7
              },
              {
                "component-id": "transceiver-module-7",
                "class": "ietf-network-inventory:transceiver-module",
                "description": "Example of an optical MPO pluggable \
                                                     breakout port.",
                "parent": "port-7",
                "is-fru": true,
                "transceiver-module-specific-info": {
                  "breakout-channels": {
                    "breakout-channel": [
                      {
                        "channel-id": 1
                      },
                      {
                        "channel-id": 2
                      },
                      {
                        "channel-id": 3
                      },
                      {
                        "channel-id": 4
                      }
                    ]
                  }
                }
              }
            ]
          }
        }
      ]
    }
  }
}
]]></artwork>
      </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" model defined in <xref target="ni-yang"/>.</t>
      <t>Multi-chassis network elements are network elements composed by 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 switch:
- are connected using a daisy-chain or a ring topology
- are managed using a single IP Address
- synchronized software-upgrade
- use Priority/MAC-Addr(s) decide Master/Members selection and communication.</t>
      <t><xref target="fig-daisy-chain-stacked"/> and <xref target="fig-ring-stacked"/> describe two examples of stacked switch with three stacked switches (pizza boxes) connected in a daisy-chain or ring topology.</t>
      <figure anchor="fig-daisy-chain-stacked">
        <name>Example of a stacked switch 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 a stacked switch 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 model, each stackable switch can be modelled as a chassis within the same network element, which models the stacked switch. The stack ports are modelled like other ports. The stack cables are not reported using the base network inventory model but can be reported using the passive network inventory 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 switch:
- are usually connected in a tree topology
- are managed using a single IP Address
- the root of the tree is configured as Master.</t>
      <t><xref target="fig-tree-cascaded"/> describe an example of cascaded switch with three chassis connected in a tree topology.</t>
      <figure anchor="fig-tree-cascaded">
        <name>Example of a cascaded switch 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 model each interconnected switch can be modelled as a chassis within the same network element, which models the cascaded switch. The ports used to interconnect the different chassis are normal (traffic) ports and modelled like other ports. The interconnecting cables are not reported using the base network inventory 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 xxx, yyy and zzz.</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 model can be used to provide this additional information.</t>
          </li>
        </ul>
        <artwork type="ascii-art"><![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": "board-1",
                "class": "iana-hardware:module",
                "description": "Single board of the first switch of \
                                                         the stack.",
                "parent": "chassis-1",
                "is-fru": false
              },
              {
                "component-id": "port-1-1",
                "class": "iana-hardware:port",
                "description": "First stack port of the first \
                                               switch in the stack.",
                "parent": "board-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": "board-1",
                "parent-rel-pos": 2
              },
              {
                "component-id": "transceiver-module-1-2",
                "class": "ietf-network-inventory:transceiver-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": 1,
                "is-fru": true
              },
              {
                "component-id": "board-2",
                "class": "iana-hardware:module",
                "description": "Single board of the second switch \
                                                      of the stack.",
                "parent": "chassis-2",
                "is-fru": false
              },
              {
                "component-id": "port-2-1",
                "class": "iana-hardware:port",
                "description": "First stack port of the second \
                                               switch in the stack.",
                "parent": "board-2",
                "parent-rel-pos": 1
              },
              {
                "component-id": "transceiver-module-2-1",
                "class": "ietf-network-inventory:transceiver-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": "board-2",
                "parent-rel-pos": 2
              },
              {
                "component-id": "transceiver-module-2-2",
                "class": "ietf-network-inventory:transceiver-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": 1,
                "is-fru": true
              },
              {
                "component-id": "board-3",
                "class": "iana-hardware:module",
                "description": "Single board of the third switch of \
                                                         the stack.",
                "parent": "chassis-3",
                "is-fru": false
              },
              {
                "component-id": "port-3-1",
                "class": "iana-hardware:port",
                "description": "First stack port of the third \
                                               switch in the stack.",
                "parent": "board-3",
                "parent-rel-pos": 1
              },
              {
                "component-id": "transceiver-module-3-1",
                "class": "ietf-network-inventory:transceiver-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": "board-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": "board-1",
                "class": "iana-hardware:module",
                "description": "Single board of the first switch of \
                                                         the stack.",
                "parent": "chassis-1",
                "is-fru": false
              },
              {
                "component-id": "port-1-1",
                "class": "iana-hardware:port",
                "description": "First stack port of the first \
                                               switch in the stack.",
                "parent": "board-1",
                "parent-rel-pos": 1
              },
              {
                "component-id": "transceiver-module-1-1",
                "class": "ietf-network-inventory:transceiver-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": "board-1",
                "parent-rel-pos": 2
              },
              {
                "component-id": "transceiver-module-1-2",
                "class": "ietf-network-inventory:transceiver-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": 1,
                "is-fru": true
              },
              {
                "component-id": "board-2",
                "class": "iana-hardware:module",
                "description": "Single board of the second switch \
                                                      of the stack.",
                "parent": "chassis-2",
                "is-fru": false
              },
              {
                "component-id": "port-2-1",
                "class": "iana-hardware:port",
                "description": "First stack port of the second \
                                               switch in the stack.",
                "parent": "board-2",
                "parent-rel-pos": 1
              },
              {
                "component-id": "transceiver-module-2-1",
                "class": "ietf-network-inventory:transceiver-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": "board-2",
                "parent-rel-pos": 2
              },
              {
                "component-id": "transceiver-module-2-2",
                "class": "ietf-network-inventory:transceiver-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": 1,
                "is-fru": true
              },
              {
                "component-id": "board-3",
                "class": "iana-hardware:module",
                "description": "Single board of the third switch of \
                                                         the stack.",
                "parent": "chassis-3",
                "is-fru": false
              },
              {
                "component-id": "port-3-1",
                "class": "iana-hardware:port",
                "description": "First stack port of the third \
                                               switch in the stack.",
                "parent": "board-3",
                "parent-rel-pos": 1
              },
              {
                "component-id": "transceiver-module-3-1",
                "class": "ietf-network-inventory:transceiver-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": "board-3",
                "parent-rel-pos": 2
              },
              {
                "component-id": "transceiver-module-3-2",
                "class": "ietf-network-inventory:transceiver-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": "TBA.",
          "components": {
            "component": [
              {
                "component-id": "chassis-1",
                "class": "iana-hardware:chassis",
                "description": "First TBD.",
                "parent-rel-pos": 1,
                "is-fru": true
              },
              {
                "component-id": "board-1",
                "class": "iana-hardware:module",
                "description": "Single board of the first switch of \
                                                         the stack.",
                "parent": "chassis-1",
                "is-fru": false
              },
              {
                "component-id": "port-1-1",
                "class": "iana-hardware:port",
                "description": "First stack port of the first \
                                               switch in the stack.",
                "parent": "board-1",
                "parent-rel-pos": 1
              },
              {
                "component-id": "transceiver-module-1-1",
                "class": "ietf-network-inventory:transceiver-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": "board-1",
                "parent-rel-pos": 2
              },
              {
                "component-id": "transceiver-module-1-2",
                "class": "ietf-network-inventory:transceiver-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": 1,
                "is-fru": true
              },
              {
                "component-id": "board-2",
                "class": "iana-hardware:module",
                "description": "Single board of the second switch \
                                                      of the stack.",
                "parent": "chassis-2",
                "is-fru": false
              },
              {
                "component-id": "port-2-1",
                "class": "iana-hardware:port",
                "description": "First stack port of the second \
                                               switch in the stack.",
                "parent": "board-2",
                "parent-rel-pos": 1
              },
              {
                "component-id": "transceiver-module-2-1",
                "class": "ietf-network-inventory:transceiver-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": "board-2",
                "parent-rel-pos": 2
              },
              {
                "component-id": "transceiver-module-2-2",
                "class": "ietf-network-inventory:transceiver-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": 1,
                "is-fru": true
              },
              {
                "component-id": "board-3",
                "class": "iana-hardware:module",
                "description": "Single board of the third switch of \
                                                         the stack.",
                "parent": "chassis-3",
                "is-fru": false
              },
              {
                "component-id": "port-3-1",
                "class": "iana-hardware:port",
                "description": "First stack port of the third \
                                               switch in the stack.",
                "parent": "board-3",
                "parent-rel-pos": 1
              },
              {
                "component-id": "transceiver-module-3-1",
                "class": "ietf-network-inventory:transceiver-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": "board-3",
                "parent-rel-pos": 2
              },
              {
                "component-id": "transceiver-module-3-2",
                "class": "ietf-network-inventory:transceiver-module",
                "description": "Transceiver module plugged in the \
                second stack port of the third switch in the stack.",
                "parent": "port-3-2",
                "is-fru": true
              }
            ]
          }
        }
      ]
    }
  }
}
]]></artwork>
      </section>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The authors of this document would like to thank the authors of <xref target="I-D.ietf-teas-actn-poi-applicability"/> for having identified the gap and requirements to trigger this work.</t>
      <t>This document was prepared using kramdown.</t>
    </section>
    <section anchor="contributors" numbered="false" toc="include" removeInRFC="false">
      <name>Contributors</name>
      <contact initials="I." surname="Busi" fullname="Italo Busi">
        <organization>Huawei Technologies</organization>
        <address>
          <email>italo.busi@huawei.com</email>
        </address>
      </contact>
      <contact initials="A." surname="Guo" fullname="Aihua Guo">
        <organization>Futurewei Technologies</organization>
        <address>
          <email>aihuaguo.ietf@gmail.com</email>
        </address>
      </contact>
      <contact initials="V." surname="Lopez" fullname="Victor Lopez">
        <organization>Nokia</organization>
        <address>
          <email>victor.lopez@nokia.com</email>
        </address>
      </contact>
      <contact initials="B." surname="Wu" fullname="Bo Wu">
        <organization>Huawei Technologies</organization>
        <address>
          <email>lana.wubo@huawei.com</email>
        </address>
      </contact>
      <contact initials="C." surname="Zhang" fullname="Chenfang Zhang">
        <organization>China Unicom</organization>
        <address>
          <email>zhangcf80@chinaunicom.cn</email>
        </address>
      </contact>
      <contact initials="O." surname="Gonzalez de Dios" fullname="Oscar Gonzalez de Dios">
        <organization>Telefonica</organization>
        <address>
          <email>oscar.gonzalezdedios@telefonica.com</email>
        </address>
      </contact>
      <contact initials="N." surname="Davis" fullname="Nigel Davis">
        <organization>Ciena</organization>
        <address>
          <email>ndavis@ciena.com</email>
        </address>
      </contact>
    </section>
  </back>
  <!-- ##markdown-source:
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
7Tcw3RHbeZaVKkaWw+P9oFs20LXxjYW6fdk/27p2XSV9dwS2ca0Q2jSK8CHM
JReyxywkwzjlNMi+jnQtTrcfWXxJnO5s23z+mlhJiOFcW39NQasmMdhlanLB
W2kT82MH2aNfk//epE1Tk+fjB8zJutQ4uXNY8/rGbV6H3t9JTYPbQE0cSaAm
PQZcPFFC66Fdf9m5sdDyBWP+gvqmo7fZ/opUXal/vfVoyfVkCt5i+6tyH7/+
jT63VX9R5ysH5rz6FgP17AfgmFtParto1RdLEc9d1V928kP1se4P4vFSxBeq
L76w/cZSX6f+F9HPF3zutP4Sg2qsH1oUO/KNXBSL6osFk/JHra/I/ab1r8VT
EqH1h3aXaf+LBv9FlOPYko7OHDQmfXW5qhEvb02yMenZHXdjUXrdZhuRjUm6
EKvMnH5QHXPaVbXLdmQ+AfNnvcwjvJBow9r/XGCS2g0gev7Yxukf5qgzGYxk
z9UHErw+LNyTox8+fOiI+XxO8/rx40cY8A+CT4nqifFRilfVXxXWUVG6+ouo
T9GPvOzJOxTdE291Hb7QLn2vsznZ9aX5SzSPF0AuOkbqHx8lMqQ71qxr6r6M
EmhhpupaM53lqBZJkmLVopORHnysPxroWz4xPgnWmdxN///60CsFSojTBXtA
X++8qoreWeWopqyzRNTdyyQvSiUEFL0jBhrC5Ozzk18hlP0OD+ye2vesydEP
PYx8wenmZZC5cIrv5hjl1l0c/ZXEpD3HLkpXRqRReZZF5Nc++itReQdnUk9j
EFmDPwoub+N4a+gY9SLM3mL4sZ2tjytx3LG6kD4UfFw0T9LqOG+ip9tmq4rp
rEK8y8sVRb/fvmBZZfxfJFgKByU3FStLonLhDN/R6fyvKVYkQr8aLwzi8Wul
lFiI2X8yL1Q873Z5Yc2o7+S05PZXlePfJvHekSBfiNr/loK8ZtR3JchXSQ2y
vCA/GyX5H0KOrzL8L5LjpYeRr2ggNqfquFVJvvM1JTmj9KvxwiAav5YgX4jY
b1WQO3S/Ki+sGfWdCPKd/9aCfDnirQhy53fNuUMDuNZ36mJ2se/UPfN07zS9
d5ou+tw7Tb9hR99d5Uv8o8rEL3T0fT2ZeO+kvndS3zup753U907qeyf1vZP6
3kn9bdq2907qeyf1vZP63kl976S+d1LfO6n/wIL8hk7q2yLeP6gg/0LiXV2Q
O79vvingznYFRc/3/3s5/s+eH3xresW9o//e0X/v6P9WHQT3jn7vc+/o96F8
s/6Be0f/vaO//nPv6P/GfaX3jv57R/836B+4d/TfO/rvHf33jv57R/+9o//e
0f8HFuT3jv7/No7+lv3WvXXo055IZ3gPSzz4a5sYO2adeiD2++/T7GocDygb
DeUkikU0K0dZLrPnJIUYZP0ZvhZX2WwskzWVGbyL0vc0cquCTIRDE1fGUdGN
+mUKRJR0o+l0nPSj82SclJgHZ5jlYhRd4vGCZADQk2FCl+bE4iKaUuafPP6v
WZLLa4GwwTyB6cq5U0gSPZlDyXQwKsQ0jxHfKrfT+zyaDLKrtNf6f8WrfyaY
hQEA

-->

</rfc>
