<?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-07" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.29.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-07"/>
    <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="07"/>
    <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 port definition below needs to be moved to iana-hardware update</t>
          </li>
        </ul>
        <dl>
          <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>
        <ul empty="true">
          <li>
            <t>TBD: Recap the concept of chassis/slot/component/board/... in <xref target="TMF_SD2-20"/>.</t>
          </li>
        </ul>
        <t>Also, the document makes use of the following terms:</t>
        <dl>
          <dt>Physical interface:</dt>
          <dd>
            <t>An interface associated to a physical 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 physical 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>
        <ul empty="true">
          <li>
            <t>Editors' Note: Add recap for the concepts of chassis/slot/component/board/... in <xref target="TMF_SD2-20"/>.</t>
          </li>
        </ul>
        <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>Slot:</dt>
          <dd>
            <t>A holder of the board.</t>
          </dd>
          <dt>Board/Card:</dt>
          <dd>
            <t>A pluggable equipment can be inserted into one or several slots (or sub-slots) and can afford a specific transmission function independently.</t>
          </dd>
          <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>Individual</organization>
            </author>
            <author fullname="Italo Busi" initials="I." surname="Busi">
              <organization>Huawei Technologies</organization>
            </author>
            <date day="11" month="April" 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 WSON, while it is known as Impairment-Aware Routing and Spectrum
   Assignment (IA-RSA) for 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-18"/>
        </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>TIM</organization>
            </author>
            <author fullname="Phil Bedard" initials="P." surname="Bedard">
              <organization>Cisco</organization>
            </author>
            <date day="17" month="April" 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-01"/>
        </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>
            <date day="21" month="October" year="2024"/>
            <abstract>
              <t>   This document presents a YANG data model for passive device inventory
   information.  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-00"/>
        </reference>
      </references>
    </references>
    <?line 1160?>

<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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
c1jz6tptXoXe30pNg9tATRxJoCY9Blw8UkLrvl1/0bmx0PIZY/6M+qajN9n+
klRdq3+18WDB9WQK3mD7y3Ifv/61PjdVf17nawfmvPoWA/XsB+CYG48au2jV
FwsRz23VX3TyQ/Wx7g/i4ULEF6ovPrP91lJfpv5n0c9nfG61/gKDaq0fWhRb
8o1cFPPqizmT8metr8j9uvWvxGMSoc2Hdhdp/7MG/1mU49iSjs4cNCZ9dbmu
ES9uTbIx6dkdt2NRet1mG5GNSboQq8qdflAdc9pVtct2ZDEG82e1KmK8kGjN
2v+cY5LaDSB6/tzG6Z/mqDMZjGTPNQcSvHpeuidH379/3xOz2Yzm9cOHDzDg
HwSfEtUT46MUr6q/LK2jonT1F1Gfoh952ZN3KLov3ug6fKFd9k5nc7LrS/OX
aB4vgJx3jNQ/PkpkSHesWdfUfR4l0MLM1LVmOstRI5IkxapFJyM9+Fh/PNS3
fGJ8EqwzuZv+P/rQKwVKiKM5e0Bf7ryqit5Z5qimrLNA1N2LtCgrJQQUvSMG
WsLk7POTXyCU/RYP7B7Z96zJ0Z96GPmM082LIHPuFN/OMcqN2zj6K4lJe45d
lC6NSKPyLIrIL330V6LyFs6kHiUgsoZ/FlzexPHW0DHqeZi9wfBjO1sfV+K4
Y3UhfSj4uGyfpOVx3kZPN81WFdNZhngXlyuKfr9+wbLM+D9LsJQOSq4rVhZE
5dwZvqXT+V9SrEiEfjFeGMTjl0opMRez/2BeqHjezfLChlHfymnJzS8qx79O
4r0lQT4Xtf+Ugrxh1LclyJdJDbK4ID8+T4s/hRxfZvifJccrDyNf0EBsT9Vx
o5J860tKckbpF+OFQTR+KUE+F7FfqyB36H5ZXtgw6lsR5Fv/1IJ8MeKtCXLn
d8O5QwO40XfqYna+79Q983TnNL1zms773DlNv2JH323lS/yzysTPdPR9OZl4
56S+c1LfOanvnNR3Tuo7J/Wdk/rOSf112rZ3Tuo7J/Wdk/rOSX3npL5zUt85
qf/EgvyaTuqbIt4/qSD/TOJdXpA7v6+/KeDOdg1FT3f/uRz/x0/3vja94s7R
f+fov3P0f60OgjtHv/e5c/T7UL5a/8Cdo//O0d/8uXP0f+W+0jtH/52j/yv0
D9w5+u8c/XeO/jtH/52j/87Rf+fo/xML8jtH/z+No79jv3VvHfq4I7Ip3sOS
DP/aJcaOWafuid3Buyy/HCVDykZDOYkSEU+r87yQ2XPSUgzzwRRfi8t8OpLJ
mqoc3sXZOxq5VUEmwqGJq5K4jOJBlQERpVE8mYzSQXySjtIK8+Cc5oU4jy/w
eEE6BOjpaUqX5iTiLJ5Q5p8i+a9pWshrgbDBIoXpKrhTSBJ9mUPJdDAuxaRI
EN8qt9O7Ih4P88us3/n/G/68ImuEAQA=

-->

</rfc>
