<?xml version="1.0" encoding="US-ASCII"?>
<?rfc toc="yes"?>
<?rfc tocompact="yes"?>
<?rfc tocdepth="3"?>
<?rfc tocindent="yes"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes"?>
<?rfc comments="yes"?>
<?rfc inline="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<rfc category="std" docName="draft-havel-opsawg-digital-map-01"
     ipr="trust200902">
  <front>
    <title abbrev="Digital Map Modelling">Modeling the Digital Map based on
    RFC 8345: Sharing Experience and Perspectives</title>

    <seriesInfo name="Internet-Draft"
                value="draft-opsawg-havel-digital-map-01" />

    <author fullname="Olga Havel" initials="O " surname="Havel">
      <organization>Huawei</organization>

      <address>
        <postal>
          <street>Townsend Street, George's Court</street>

          <city>Dublin</city>

          <country>Ireland</country>
        </postal>

        <email>olga.havel@huawei.com</email>
      </address>
    </author>

    <author fullname="Benoit Claise" initials="B " surname="Claise">
      <organization>Huawei</organization>

      <address>
        <postal>
          <street>ADD</street>

          <city>ADD</city>

          <country>Belgium</country>
        </postal>

        <email>benoit.claise@huawei.com</email>
      </address>
    </author>

    <author fullname="Oscar Gonzalez de Dios" initials="O. Gonzalez"
            surname="de Dios ">
      <organization>Telefonica</organization>

      <address>
        <postal>
          <street>ADD</street>

          <city>Madrid</city>

          <country>Spain</country>
        </postal>

        <email>oscar.gonzalezdedios@telefonica.com</email>
      </address>
    </author>

    <author fullname="Ahmed.Elhassany" initials="A" surname="Elhassany">
      <organization>Swisscom</organization>

      <address>
        <postal>
          <street>Binzring 17</street>

          <city>Zurich</city>

          <code>8045</code>

          <country>Switzerland</country>
        </postal>

        <email>Ahmed.Elhassany@swisscom.com</email>
      </address>
    </author>

    <author fullname="Thomas Graf" initials="T" surname="Graf">
      <organization>Swisscom</organization>

      <address>
        <postal>
          <street>Binzring 17</street>

          <city>Zurich</city>

          <code>8045</code>

          <country>Switzerland</country>
        </postal>

        <email>thomas.graf@swisscom.com</email>
      </address>
    </author>

    <author fullname="Mohamed Boucadair" initials="M." surname="Boucadair">
      <organization>Orange</organization>

      <address>
        <postal>
          <street />

          <city>Rennes</city>

          <code>35000</code>

          <country>France</country>
        </postal>

        <email>mohamed.boucadair@orange.com</email>
      </address>
    </author>

    <date day="20" month="October" year="2023"/>

    <area>OPS</area>

    <workgroup>OPSAWG</workgroup>

    <abstract>
      <t>This document shares experience in modelling digital map based on the
      IETF RFC 8345 topology YANG modules and some of its augmentations.
      First, the concept of Digital Map is defined and its connection to the
      Digital Twin is explained. Next to Digital Map requirements and use
      cases, the document identifies a set of open issues encountered during
      the modelling phases, the missing features in RFC 8345, and some
      perspectives on how to address them.</t>
    </abstract>

    <note removeInRFC="true">
      <name>Discussion Venues</name>

      <t>Source for this draft and an issue tracker can be found at <eref
      target="https://github.com/OlgaHuawei" />.</t>
    </note>
  </front>

  <middle>
    <section anchor="intro" title="Introduction">
      <t><xref target="RFC8345" /> specifies a topology YANG model with many
      YANG augmentations for different technologies and service types. The
      modelling approach based upon <xref target="RFC8345" /> provides a
      standard IETF based API.</t>

      <t>At the time of writing (2023), there are at least 59 YANG modules
      that are augmenting <xref target="RFC8345" />; 58 IETF-authored modules
      and 1 BBF-authored module. 9 of these modules have maturity level of
      'ratified', 22 of them have maturity level of 'adopted', 11 modules have
      maturity level of 'latest-approved', and 17 of these modules have
      maturity level of 'initial'. The up-to-date information can be found in
      the YANG Catalog available at <xref target="Catalog" />.</t>

      <t>From this set of IETF RFCs and IETF I-Ds (at different level of
      maturity), we designed a Digital Map Proof of concept (PoC), with the
      following objectives and functionalities:</t>

      <ul>
        <li>Can the central RFC 8345 YANG module be a good basis to model a
        Digital Map?</li>

        <li>How the different topology related IETF YANG modules fit (or not)
        together?</li>

        <li>Modelling of digital map entities, relationships, and rules how to
        build aggregated entities and relationships. Does the base model
        support key requirements that emerge for a specific layer?</li>

        <li>Modelling multiple underlay/overlay layers from Layer 2 to Layer 3
        to customer service layer. To what extent it is easy to augment the
        base model to support new technologies?</li>

        <li>Can the base model be augmented for any new layer and
        technologies?</li>
      </ul>

      <t>This I-D documents an experience in the modeling aspects of the
      Digital Map, based on a PoC implementation, basically documenting the
      effort and the open issues encountered so far. During the PoC, we also
      identified a set of requirements and verified the PoC approach by
      demoing it iteratively.</t>

      <t>Practically, we developed a PoC with a real lab, based on
      multi-vendor devices, with <xref target="RFC8345" /> as the base YANG
      module. The PoC successfully modelled the following technologies:</t>

      <t>- Layer 2 Network Topology (used <xref target="RFC8944" />)</t>

      <t>- Layer 3 Network Topology (used <xref target="RFC8346" />)</t>

      <t>- OSPF routing (aligned with <xref
      target="I-D.ogondio-opsawg-ospf-topology" />)</t>

      <t>- IS-IS routing (aligned with <xref
      target="I-D.ogondio-opsawg-isis-topology" />)</t>

      <t>- BGP routing</t>

      <t>- MPLS LDP</t>

      <t>- MPLS TE Tunnels</t>

      <t>- SRv6 Tunnels</t>

      <t>- L3VPN service</t>

      <section anchor="terminology" title="Terminology">
        <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
        "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
        "OPTIONAL" in this document are to be interpreted as described in BCP
        14 <xref target="RFC2119" /> <xref target="RFC8174" /> when, and only
        when, they appear in all capitals, as shown here.</t>

        <t>
          <cref>Update capitalized versus not capitalized throughout the
          document. In other drafts capitalized is used for terminology and
          definitions, but we may decide to have it unified.</cref>
        </t>

        <dl>
          <dt>Digital Twin -</dt>

          <dd>Virtual instance of a physical system (twin) that is continually
          updated with the latter's performance, maintenance and health status
          data throughout the physical system's life cycle (as defined in
          Section 2.2 of <xref
          target="I-D.irtf-nmrg-network-digital-twin-arch" />)</dd>
        </dl>

        <dl>
          <dt>Topology -</dt>

          <dd>Network topology defines how physical or logical nodes, links
          and interfaces are related and arranges. Service topology defines
          how service components (e.g., VPN instances, customer interfaces,
          and customer links) between customer sites are interrelated and
          arranged. There are at least 8 types of topologies: point to point, bus,
          ring, star, tree, mesh, hybrid and daisy chain. Topologies may be
          unidirectional or bidirectional (bus, some rings).</dd>

          <dt>Topology Layer -</dt>

          <dd>Defines a layer in the multilayer topology. A multilayer
          topology models relationships between different layers of
          connectivity, where each layer represents a connectivity aspect of
          the network and service that needs to be configured, controlled and
          monitored. The layer can also represent what needs to be managed
          by a specific user, for example IGP layer can be of interest
          to the user troubleshooting the routing, while the optical layer
          may be of interest to the user managing the Optical Network.
          Some topology layers may relate closely to OSI layers,
          like L1 topology for physical topology, L2 for link topology and L3
          for IPv4 and IPv6 Topologies. Some topology layers represent the
          control aspects of L3, like OSPF, IS-IS and BGP. The top layer
          represents the service view of the connectivity, that can differ for
          different types of services and for different
          providers/solutions.</dd>

          <dt>Digital Map -</dt>

          <dd>Basis for the Digital Twin that provides a virtual instance of
          the topological information of the network. It provides the core
          multi-layer topology model and data for the digital twin and
          connects them to the other digital twin models and data.</dd>

          <dt>Digital Map Modelling -</dt>

          <dd>The set of principles, guidelines, and conventions to model the
          Digital Map using the IETF <xref target="RFC8345" /> approach. They
          cover the network types (layers and sublayers), entity types, entity
          roles (network, node, termination point or link), entity properties
          and relationship types between entities.</dd>

          <dt>Digital Map Model -</dt>

          <dd>Defines the core topological entities, their role in the
          network, core properties and relationships both inside each layer
          and between the layers. It is the basic topological model that is
          linked to other functional parts of the digital twin and connects
          them all: configuration, maintenance, assurance (KPIs, status,
          health, symptoms), traffic engineering, different behaviors,
          simulation, emulation, mathematical abstractions, AI algorithms,
          etc</dd>

          <dt>Digital Map Data -</dt>

          <dd>Consists of instances of network and service topologies at
          different layers. This includes instances of networks, nodes, links
          and termination points, topological relationships between nodes,
          links and termination points inside a network, relationships between
          instances belonging to different networks, links to functional data
          for the instances, including configuration, health, symptoms. The
          data can be historical, real-time or future data for what-if
          scenarios.</dd>
        </dl>          
      </section>
    </section>

    <section anchor="digital-map-and-digital-twin-relationship"
             title="Digital Map and Digital Twin Relationship">
      <section anchor="digital-twin" title="Digital Twin">
        <t>The network digital twin (referred to simply as digital twin)
        concepts and a reference architecture are proposed in the "Digital
        Twin Network: Concepts and Reference Architecture" NMRG I-D
        <xref target="I-D.irtf-nmrg-network-digital-twin-arch"></xref>.</t>

        <t>This document defines the core elements of digital twin - Data,
        Models, Interfaces, and Mapping. The digital twin constructed based on
        the four core technology elements is intended to analyze, diagnose,
        emulate, and control the physical network in its whole lifecycle with
        the help of optimization algorithms, management methods, and expert
        knowledge.</t>

        <t>Also, this document states that a digital twin can be seen as an
        indispensable part of the overall network system and provides a
        general architecture involving the whole lifecycle of physical
        networks in the future, serving the application of innovative network
        technologies (e.g., network planning, construction, maintenance and
        optimization, improving the automation and intelligence level of the
        network).</t>
      </section>

      <section anchor="digital-map" title="Digital Map">
        <t>Digital Map provides the core multi-layer topology model and data
        for the digital twin and connects them to the other digital twin
        models and data.</t>

        <t>The Digital Map Modelling defines the core topological entities 
        (network, node, link and interface), their role in the network, 
        core properties, and relationships both inside each layer and between 
        the layers.</t>

        <t>The Digital Map Model is a basic topological model that is linked
        to other functional parts of the digital twin and connects them all:
        configuration, maintenance, assurance (KPIs, status, health,
        symptoms), Traffic Engineering (TE), different behaviors and actions,
        simulation, emulation, mathematical abstractions, AI algorithms,
        etc.</t>

        <t>The Digital Map Data consists of virtual instances of network and
        service topologies at different layers. The Digital Map provides the
        access to this data via standard APIs for both read and write
        operations (write operations for offline simulations), with query 
        capabilities and links to other YANG modules (e.g., SAIN 
        <xref target="RFC9417"></xref>,
        SAP <xref target="RFC9408"></xref>, Inventory 
        <xref target="I-D.wzwb-opsawg-network-inventory-management"></xref>, and
        Assets <xref target="I-D.palmero-opsawg-dmlmo"></xref>) and non-YANG
        models.</t>
      </section>

      <section anchor="digital-map-as-a-prerequisite-digital-twin"
               title="Digital Map as a Prerequisite for Digital Twin">
        <t>One of the important requirements for the digitalization and
        Digital Twin is to ease correlating all models and data to topological
        entities at different layers in the layered twin network. The Digital
        Map aims to provide a virtual instance of the topological information
        of the network, based on this Digital Map Model. Building a Digital
        Map is prerequisite towards the Digital Twin.</t>

        <t>The Digital Map Model/Data will provide this missing correlation
        between the topology models/data and all other models/data: KPIs,
        alarms, incidents, inventory (with UUIDs), configuration, traffic
        engineering, planning, simulation ("what if"), emulations, actions,
        and behaviors.</t>

        <t>Some of these models/data provide a device view, some provide a
        network or subnetwork view, while others focus more on the customer
        service perspective. All these views are needed for both inner and
        outer closed-loops. It is debatable what is part of the Digital Map
        itself versus what are pointers from the Digital Map to some other
        sources of information. As an example, the Digital Map should not specifically
        include all information about the device inventory (product name,
        vendor, product series, embedded software, and hardware/software
        versions, as specified in Network Inventory (IVY) WG, 
        https://datatracker.ietf.org/doc/charter-ietf-ivy/ ): a pointer from 
        the Digital Map to another inventory system might be sufficient. 
        Similarly, the Digital Map should not specifically contain incidents, 
        configuration, data plane monitoring, or even assurance information, 
        simply to name a few.</t>

        <t>The following are some Digital Twin use cases that require Digital Map:</t>

        <ul>
          <li>Generic Inventory Queries</li>

          <li>Service placement feasibility checks</li>

          <li>Service-&gt; subservice -&gt; resource</li>

          <li>Resource -&gt; subservice -&gt; service</li>

          <li>Intent/Service Assurance</li>

          <li>Service E2E and Per-Link KPIs on the Digital Map (delay, jitter,
          and loss)</li>

          <li>Capacity planning</li>

          <li>Network Design</li>

          <li>Simulation</li>

          <li>Closed Loop</li>
        </ul>

        <t>Overall, the Digital Map is needed to break down data islands and
        have a digital twin for emulation and closed loop, which is a catalyst
        for autonomous networking.</t>
      </section>
    </section>

    <section anchor="ietf-network-topology-approach"
             title="The IETF Network Topology Approaches">
      <section anchor="ietf-network-topology" title="IETF Network Topology">
        <t><xref target="RFC8345"></xref> provides a simple generic
        topological model. It defines the abstract /generic /base model for
        network and service topologies. It provides the mechanism to model
        networks and services as layered topologies with common relationships
        at the same layer and underlay/overlay relationships between the
        layers.</t>

        <t><xref target="RFC8345"></xref> consists of two modules:
        'ietf-network' and 'ietf-network-topology'. The 'ietf-network' module
        defines networks and nodes, while 'ietf-network-topology' module adds
        definitions for links and termination points.</t>

        <t>The relationships inside the layer are containment/aggregation (a
        network contains nodes, a network contains/has links, a node contains
        termination points), source (a link has one source termination point)
        and destination (a link has one destination termination point)</t>

        <t>The relationships between the layer modelled via supporting
        relationship <ul>
            <li>network A is supported by network B - this may model
            overlay/underlay relationship</li>

            <li>nodes, links and termination points of network A are supported
            by nodes, links and termination points of network B. Overlay and
            underlay nodes, links and termination points must match underlay
            and overlay networks supporting it</li>
          </ul></t>
      </section>

      <section anchor="ietf-network-topology-te"
               title="IETF Network Topology TE">
        <t><xref target="RFC8795" /> defines a YANG model for representing,
        retrieving and manipulating TE topologies. This is a more complex
        model which augments <xref target="RFC8345" /> with traffic
        engineering topology information as follows: <ul>
            <li>TE topology, node, link and termination point are defined
            using the core RFC8345 concepts <ul>
                <li>TE topology augments network with topology identifier
                (provider, client and topology id), as well as other 'te'
                information</li>

                <li>TE node augments node with 'te-node-id' and other 'te'
                information</li>

                <li>TE link augments link with te information</li>

                <li>TE termination point augments termination point with
                'te-tp-id' and te information</li>
              </ul></li>

            <li>Tunnel, tunnel termination point, local link connectivity,
            node connectivity matrix, and some supporting and underlay
            relationships are defined outside of the core RFC 8345 entities
            and relationships</li>
          </ul></t>
      </section>
    </section>

    <section anchor="ditial-map-requirements" title="Digital Map Requirements">
      <t>
        <cref>We discussed if requirements should be in a separate document.
        We will leave them in this document for now, later we can create a
        separate draft.</cref>
      </t>

      <t>The following are the core requirements for the Digital Map (note
      that some of them are supported by default by <xref
      target="RFC8345" />:</t>

      <ol>
        <li>Basic model with Network, Node, Link, Interface entity types</li>

        <li>Layered Digital Map, from physical network (ideally optical, layer
        2, layer 3) up to customer service and intent</li>

        <li>Open and Programmable Digital Map. This includes "Read" to
        understand the view of the network. It also includes "Write", not for
        the ability to directly change the Digital Map Data (ex: changing the
        network or service parameters), but for offline simulations, also
        known as what-if scenarios. Doing what-if analysis requires the
        ability to take snapshots and to switch easily between them. Because
        we have to distinguish between a change on the digital map for future
        simulation and a change that reflects the current reality of the
        network.</li>

        <li>Standard based Digital Map Models and APIs, for multi-vendor
        support. Digital Map must provide the standard APIs that provide for
        Read / Write and queries. This API must also provide the capability to
        retrieve the links to external data / models.</li>

        <li>Digital Map Models and APIs must be common over different network
        domains (campus, core, data center, etc.)</li>

        <li>Digital Map must provide semantics for layered network topologies
        and for linking external models/data</li>

        <li>Digital Map must provide inter-layer and between layer
        relationships</li>

        <li>Digital Map must be extensible with meta data</li>

        <li>Digital Map must be pluggable a) We must connect to other YANG
        modules for inventory, configuration, assurance, etc b) Not everything
        can be in YANG, we need to connect Digital Map YANG model with other
        modelling mechanisms, both southbound, northbound and internally</li>

        <li>Digital Map must be optimized for graph traversal for paths. This
        means that only providing link nodes and source and sink relationships
        to termination-points may not be sufficient, we may need to have the
        direct relationship between the termination points or nodes</li>
      </ol>

      <section anchor="why-ietf-network-topology"
                title="Why RFC8345 is a Good Approach for Digital Map Modelling">
         <t>The main reason for selecting RFC8345 for modelling is its simplicity
         and that is supports majority of the core requirements. The requirements
         [1-7] are automatically fulfilled with RFC8345 and extensions: <ul>
             <li>basic model with network, node, link and interface entity
             types</li>

             <li>layered topology</li>
   
             <li>open and programmable</li>

             <li>standard, multi-vendor</li>

             <li>multi-domain</li>

            <li>semantics for layered topology</li>

            <li>inter-layer and between-layer relationships</li>
           </ul> The requirements [6-7] for semantics for layered topology and
         relationships are partially fulfilled, there may be need for some
         additional semantics. Other core requirements [8-10] are not supported
         by RFC8345: <ul>
             <li>extensible with meta data</li>

             <li>pluggable to other YANG modules and non-YANG data</li>

             <li>optimized for graph traversal</li>
           </ul> In some cases, for [9] for pluggable to other YANG modules, the
         links are already done by augmenting 'ietf-network' and
        'ietf-network-topology'. For others, we need to add some mechanisms to
         link the models and data.</t>
       </section>

      <section anchor="design-requirements"
                title="Design Requirements">

      <t>The following are design requirements for modelling the
      Digital Map:</t>

      <ol>
        <li>Digital Map should contain only topological information. 
        Digital Map should not contain all data required for all the management 
        and use cases, but should have pointers to other functional Digital
        Twin data and models.</li>

        <li>Digital Map entities should contain only properties used to
        identify topological entities at different layers, identify their
        roles and topological relationships between them</li>

        <li>Digital Map should contain only topological relationships inside
        each layer or between the layers (underlay/overlay)</li>

        <li>ACLs and Route Policies will be outside of the digital map, they
        would be linked to digital map</li>

        <li>Dynamic paths may either be outside of the digital map, part of
        traffic engineering data/models</li>

        <li>Provide capability for conditional retrieval of parts of digital
        map</li>

        <li>Must support geo-spatial, temporal, and historical data. The
        temporal and historical can be supported external to the digital
        map.</li>
      </ol>

      <t>The following are the architectural requirements for the Digital
      Map:</t>

      <ol>
        <li>Scale, performance, integration</li>

        <li>Initial discovery and dynamic (change only) synch</li>
      </ol>
       </section>    
    </section>

 

    <section anchor="digital-map-modelling-experience"
             title="Digital Map Modelling Experience">
      <section anchor="what-is-not-in-basic"
               title="What is not in the basic model">
        <t>The following are the <xref target="RFC8345" /> extensions needed
        for Digital Map modelling and APIs:</t>

        <ul>
          <li>Bidirectional links</li>

          <li>Multi-point connectivity</li>

          <li>Links between domains/networks</li>

          <li>A network can be decomposed of sub-networks</li>

          <li>Nodes, links, and termination points belong to different networks</li>

          <li>Supporting relationships between different types of entities</li>

          <li>More network topology related semantic is needed</li>
        </ul>

        <section anchor="bidirectional-links" title="Bidirectional Links">
          <t>The RFC8345 defines all links as unidirectional, it does not
          support bidirectional links. It was done intentionally to keep the
          model as simple as possible. The RFC suggests to model the
          bidirectional connections as pairs of unidirectional links.</t>

          <t>Nevertheless, while simplifying the model itself, we are making
          data and APIs more complex for the cases where we have bidirectional
          links. And we are increasing the amount of instances / data
          transferred via API, stored in the database, or
          managed/monitored.</t>

          <t>One of the core characteristics of any network topology is the
          link directionality. While data flows are unidirectional, the
          bidirectional links are also common in networking. Examples are
          Ethernet cables, bidirectional SONET rings, socket connection to the
          server, etc. We also encounter requirements for simplified service
          layer topology, where we want to model link as bidirectional to be
          supported by unidirectional links at the lower layer.</t>

          <t><xref target="I-D.davis-opsawg-some-refinements-to-rfc8345"/>
            further elaborates on the need for bidirectional links in the network topologies and
            in the digital map. It also proposes how RFC8345 can be augmented to support missing components.
          </t>

        </section>

        <section anchor="multipoint-connectivity"
                 title="Multipoint Connectivity">
          <t>The RFC8345 defines all links as point to point and
          unidirectional, it does not support multi-point links (hub and
          spoke, full mesh, complex). It was done intentionally to keep the
          model as simple as possible. The RFC suggests to model the
          multi-point networks via pseudo nodes.</t>

          <t>Same as with unidirectionality, while simplifying the model
          itself, we are making data and APIs more complex for multi point
          topologies and we are increasing the amount of data transferred via
          API, stored in the database or managed/monitored.</t>

          <t>One of the core characteristics of any network topology is its
          type and link cardinality. Any topology model should be able to
          model any topology type in a simple and explicit way, including
          point to multipoint, bus, ring, star, tree, mesh, hybrid and daisy
          chain. Any topology model should also be able to model any link
          cardinality in a simple and explicit way, including point to point,
          point to multipoint, multipoint to multipoint or hybrid.</t>

          <t>By forcing the implementation of all topology types and all
          options for cardinality via unidirectional links and pseudo nodes,
          we are significantly increasing the complexity of APIs and data, but
          also lacking full topology semantics in the model. The model cannot
          be fully used to validate if topology instances are valid or
          not.</t>

          <t>Note that, next to layer 2 mentioned above, the point to
          multipoint network type is also required in some cases at the OSPF
          layer.</t>

          <t><xref target="I-D.davis-opsawg-some-refinements-to-rfc8345"/>
            further elaborates on the need for multipoint connectivity in network topologies and
            in the digital map, in general. It also proposes how RFC8345 can be augmented to support these missing components.
          </t>
        </section>

        <section anchor="multi-network-links" title="Links Between Networks">
          <t>The RFC8345 defines all links as belonging to one network
          instance and having the source and destination as node and
          termination point only, not allowing to link to termination point of
          another network. This does not allow for links between networks in
          the case of multi-domains or partitioning. The only way would be to
          model each domain as node and have links between them.</t>

          <t>We modelled IS-IS Areas as networks during the PoC and
          we needed to extend the capability to have links between different
          areas. We added network reference as well to the source /
          destination of the link. The RFC8795 also augments links with
          external-domain info for the case of links that connect different
          domains.</t>

          <t>The IS-IS topology  <xref target="I-D.ogondio-opsawg-isis-topology"/>
          models Autonomous System (AS) or IS-IS domain as a network, and
            IS-IS areas as attributes of IS-IS nodes.
            The RFC8345 extension can be used to model IS-IS areas as networks and IS-IS links
          between L1-2 nodes as links between two different areas. This is not problem
          for OSPF, althogh the OSPF nodes can belong to multiple areas, the links can belong
          to only one area.</t>

          <t>The following are some benefits of modeling links between different networks:
          <ul>
            <li>IS-IS processes would be grouped in an area via the standard IETF RFC8345
            network->node relationship.</li>
            <li>Applications and algorithms will consume topologies based on the generic
              entities and relationships, they will not need to understand the meaning of
              specific IS-IS attributes.</li>
            <li>The approach would be aligned with the IS-IS topology model and the IS-IS
            network view in manuals and documentation.</li>
            <li>Provide capability to link different IGP domains and links between them.</li>
            <li>Link between multiple networks/sub-networks is the common concept in
              network topology.</li>
          </ul>
          </t>
        </section>

        <section anchor="sub-networks" title="Networks part of other networks">
        <t>
          RFC8345 does not model networks being part of other networks, therefore cannot model
          subnetworks and network partitioning. We encountered this problem with modelling IS-IS
          and OSPF Domains and Areas. The initial goal was to model AS/Domain with multiple areas
          so that the digital map model contains information about how the AS is
          first split into different IGP domains and how each IGP domain is split into different areas.
          This is a common problem for both IS-IS and OSPF.
        </t>

          <t>The following are some options how to address this problem:
            <ul>
          <li>Don't model AS and IS-IS/OSPF Domain directly, they would be modelled via the
          underlying IP network and IS-IS/OSPF enabled routers. This could be achieved via supporting
            relationship to L3 network and L3 nodes </li>
          <li>Model AS, IGP domains and Areas as networks. We use supporting relationship to model the
            network topology design, with only areas having nodes. This does not describe the correct
            nature of the relationship, semantic is missing.</li>
          <li>Extend RFC8345 to support additional relationship between networks.</li>
            </ul>
          </t>
        </section>

        <section anchor="nodes-multiple-networks" title="Nodes, tps and links in multiple networks">
        <t>RFC8345 does not allow nodes and TPs to belong to multiple areas without splitting them into
          separate entities with separate keys. In OSPF case we have nodes that can belong to different
          areas, but interfaces can only belong to one area. In the case of IS-IS, although all tutorial
          are stating that nodes can belong to one area only, the ietf, openconfig  and vendor
          yang models and cli allow IS-IS processes with all its interfaces to belong to multiple areas.
          We can see the two options here:
          <ul>
          <li>Use the current RFC8345 approach, this is not the problem for read but may be an issue for
          write for simulation as we would expect that the interface lists in different nodes and networks
          be the same without being able to validate.</li>
          <li>Change the approach of RFC8345 to optionally allow nodes to be defined outside of network tree and
            enable reference as an alternative to the containment in the tree. This may be a bigger change to the
            network topology approach as it would have bigger impact on the topology tree.
          </li>
          </ul>
        </t>
        </section>

        <section anchor="supporting-relationships"
                 title="Missing Supporting Relationships">
          <t>RFC8345 defines supporting relationships only between the
          same type of entities. Networks can only be supported by networks,
          nodes can only be supported by nodes, termination points can only be
          supported by terminations points and links can only be supported by
          links.</t>

          <t>During the PoC, we encountered the need to have TP supported by
          node and node supported by Network. The RFC8795 also adds additional
          underlay relationship between node and topology and link and
          topology, but via a new underlay topology and not via the core
          supporting relationship.</t>
        </section>

        <section anchor="missing-semantics" title="Missing Topology Semantics">
          <t>We already mentioned that some semantic is missing from the
          RFC8345 topology model, like bidirectional and multi-point. The
          following is also missing from the model:</t>

          <ul>
            <li>Relationship Properties. The supporting relationship could
            have additional attributes that give more information about the
            supporting relationship. That way we could use it for aggregation,
            underlay with primary/backup, load balancing, hop, sequence,
            etc.</li>

            <li>Termination point roles. We are missing semantics for the
            common topology roles: primary, backup, hub, spoke</li>

            <li>Layers / Sublayers. We need further analysis to determine in
            network types are sufficient to support all scenarios for
            layers/sublayers. The network types are more related to
            technologies so in the case that the same technology is used at
            different layers, we may need some additional information in the
            model. For further study.</li>

            <li>Tunnels and Paths. We modelled Tunnels ad Paths via <xref
            target="RFC8345" /> but we lost some semantics that is in
            RFC8795.</li>

            <li>Supporting or underlay. We modelled all underlay relationships
            via supporting, further analysis is needed to determine pros and
            cons of this approach versus RFC8795 approach of using underlay
            topology.</li>
          </ul>
        </section>
      </section>

      <section anchor="layering-open-issues"
               title="Open Issues for Further Analysis">
        <t>The following are the open issues that need further analysis:</t>

        <ul>
          <li>Do we need separation of L2 and L3 topologies? <t> During the
          PoC we encountered different solutions with separate set of
          requirements. In one solution, the L2 and L3 topology were the same
          with separate set of attributes, while in another solution we had
          difference in L2 and L3 topology (e.g. Links Aggregation, Switches
          and Routers). </t> <t>The RFC8944 defines L2 topology and RFC8346
          defines the L3 topology. They allow to have either one or two
          instances of this topology. </t> <t>The decision if we need separate
          network instances for L2 and L3 topologies may be based on specific
          network topology and provider's preferences. </t></li>

          <li>Do we need sublayers as well? Layers versus sublayers versus
          layered instances? Further analysis is needed.</li>

          <li>Same technology at service versus underlay? BGP per VPN vs
          common BGP shared between multiple VPNs. Different layers, same
          model, relationship define the layer.</li>
        </ul>
      </section>

      <section anchor="how-to-augment-generic"
               title="How to Augment for Generic Digital Map Extensions">
        <t>Generic Digital Map extensions are the RFC8345 extensions required
        for all technologies and layers in the Digital Map. We have the
        following options: <ol>
            <li>make backward compatible updates to RFC8345, either via
            changing or augmenting the network, node, link and termination
            point in the RFC8345</li>

            <li>augment RFC8345 network, node, link and termination point for
            any changes needed from a new digital map module <artwork><![CDATA[
module: dm-network-topology
	augment /nw:networks/nw:network:
		.... additions
	augment /nw:networks/nw:network/nw:node:
		.... additions
	augment /nw:networks/nw:network/nt:link:
		.... additions
	augment /nw:networks/nw:network/nw:node/nt:termination-point:
		.... additions
					]]></artwork></li>
          </ol> <cref> This will be a separate draft with describing pros and
        cons of different approaches and yang model proposal. Add reference to
        this draft when submitted </cref></t>
      </section>

      <section anchor="how-to-augment-specific"
               title="How to Augment for New Technologies/Layers">
        <t>There are already drafts that support augmentation for specific
        technologies. These drafts augment network, node, termination point
        and link, but also add different topological entities inside
        augmentations. For example, we have examples like this: <artwork><![CDATA[
module: new-module
	augment /nw:networks/nw:network/nw:network-types:
      +--rw new-topology!
		augment /nw:networks/nw:network:
				....
		augment /nw:networks/nw:network/nw:node:
			.... adding list of tps of other type
				 (e.g. tunnel TPs in te draft)
			... adding new supporting relationship
				 supporting-tunnel-termination-point
				 (te draft)
		augment /nw:networks/nw:network/nt:link:
				.... adding tunnels (te draft)
		augment /nw:networks/nw:network/nw:node/
		                              nt:termination-point:
				....
				]]></artwork></t>

        <t>There is need to agree some guidelines for augmenting IETF network
        topology, so that additional topological information is not added in
        the custom way. This may either involve <ul>
            <li>adding concepts from TE and SAP topological augmentations to
            the core digital map topology in the similar way they were added
            in the corresponding drafts or</li>

            <li>using the TP to model SAP and 'link' to model tunnel in the
            core Digital Map</li>
          </ul> <cref> This can be a separate draft. Guidelines with examples?
        Add reference to this draft when submitted </cref></t>
      </section>

      <section anchor="how-external-world">
        <name>How to connect to the external world</name>

        <t>How to connect to other YANG modules</t>

        <t>How to connect YANG models with other modelling mechanisms</t>
      </section>

      <section anchor="digital-map-apis">
        <name>Digital Map APIs</name>

        <t>This will include hierarchical APIs for cross-domain figure, IETF
        YANG Based API (read and write, change subscription and notify) and
        Query API</t>
      </section>

      <section anchor="digital-map-knowledge">
        <name>Digital Map Knowledge</name>

        <t>The following knowledge was needed to build digital map:</t>

        <ul>
          <li>Abstract IETF Entities and Relationships as in <xref
          target="RFC8345" /></li>

          <li><xref target="RFC8345" /> Augmentations for a)Layers/sublayers
          b)Entities (services and subservices), c)Properties</li>

          <li>Rules for aggregating entities</li>

          <li>Rules for instantiating relationships (inter-layer and
          intra-layer)</li>

          <li>Mapping from devices and controllers</li>
        </ul>

        <t>What can be achieved with existing RFC8345 YANG:</t>
        <ul>
          <li>Entities (base class IETF Network, IETF Node, IETF Link, IETF
          TP)</li>

          <li>Properties</li>

          <li>Relationships</li>
        </ul>

        <t>Next steps</t>

        <ul>
          <li>How to support temporal</li>

          <li>How to support spacial</li>

          <li>How to support historical</li>
        </ul>
      </section>
    </section>

    <section anchor="Related-ietf-activities" title="Related IETF Activities">
      <section anchor="network-topology" title="Network Topology">
        <t>Interestingly, we could not find any Network Topology definition in
        IETF RFCs (not even in <xref target="RFC8345" />) or drafts. However,
        it's mentioned in multiple documents. As an example, in Overview and
        Principles of Internet Traffic Engineering <xref
        target="I-D.ietf-teas-rfc3272bis" />, which mentioned:</t>

        <t>To conduct performance studies and to support planning of existing
        and future networks, a routing analysis may be performed to determine
        the paths the routing protocols will choose for various traffic
        demands, and to ascertain the utilization of network resources as
        traffic is routed through the network. Routing analysis captures the
        selection of paths through the network, the assignment of traffic
        across multiple feasible routes, and the multiplexing of IP traffic
        over traffic trunks (if such constructs exist) and over the underlying
        network infrastructure. A model of network topology is necessary to
        perform routing analysis. A network topology model may be extracted
        from:</t>

        <ul>
          <li>* network architecture documents</li>

          <li>* network designs</li>

          <li>* information contained in router configuration files</li>

          <li>* routing databases such as the link state database of an
          interior gateway protocol (IGP)</li>

          <li>* routing tables</li>

          <li>* automated tools that discover and collate network topology
          information.</li>
        </ul>

        <t>Topology information may also be derived from servers that monitor
        network state, and from servers that perform provisioning
        functions.</t>
      </section>

      <section anchor="core-digital-map-components"
               title="Core Digital Map Components">
        <t>The following standards are core for the Digital Map.</t>

        <ul>
          <li>IETF Network Model and Network Topology Model <xref
          target="RFC8345" /></li>

          <li>A YANG Grouping for Geographic Location <xref
          target="RFC9179" /></li>

          <li>IETF Modules that augment <xref target="RFC8345" /> for
          different technologies:</li>

          <li>- A YANG Data Model for Traffic Engineering (TE) Topologies
          <xref target="RFC8795" /></li>

          <li>- A YANG Data Model for Layer 2 Network Topologies <xref
          target="RFC8944" /></li>

          <li>- A YANG Data Model for OSFP Topology <xref
          target="I-D.ogondio-opsawg-ospf-topology" /></li>

          <li>- A YANG Data Model for IS-IS Topology <xref
          target="I-D.ogondio-opsawg-isis-topology" /></li>
        </ul>
      </section>

      <section anchor="additional-digital-map-components"
               title="Additional Digital Map Components">
        <t>The Digital Map may need to link to the following models, some are
        already augmenting <xref target="RFC8345" />, we need further
        investigation for each of these items:</t>

        <ul>
          <li>Service Access Point (SAP) <xref target="RFC9408" />, augments
          'ietf-network' data model <xref target="RFC8345" /> by adding the
          SAP.</li>

          <li>SAIN <xref target="RFC9417"></xref> and 
          <xref target="RFC9418"></xref>
          </li>

          <li>An Inventory Management Model for Enterprise Networks <xref
          target="I-D.wzwb-opsawg-network-inventory-management" /> augments
          'ietf-network-topology' with inventory information for node, link
          and termination-point. It also has UUIDs.</li>

          <li>A YANG Data Model for Network Hardware Inventory <xref
          target="I-D.ietf-ccamp-network-inventory-yang"/> augments 
          network-topology' to provide a generic YANG data model
          for network hardware inventory data information which
          can be augmented with technology-specific (e.g., optical)
          inventory data.</li>

          <li>Data Model for Lifecycle Management and Operations <xref
          target="I-D.palmero-opsawg-dmlmo" /></li>

          <li>KPIs: delay, jitter, loss</li>

          <li>Attachment Circuits (ACs) <xref
          target="I-D.boro-opsawg-ntw-attachment-circuit" /> and <xref
          target="I-D.boro-opsawg-teas-attachment-circuit" /></li>

          <li>Configuration: L2SM <xref target="RFC8466" />, L3SM <xref
          target="RFC8299" />, L2NM <xref target="RFC9291" />, L3NM <xref
          target="RFC9182" /></li>

          <li>Incident Management for Network Services <xref
          target="I-D.feng-opsawg-incident-management" /></li>
        </ul>
      </section>

      <section anchor="ivy" title="Network Inventory (IVY) Proposed Working">
        <t>The charter of the Network Inventory (IVY) IETF Working Group (WG) 
          can be found at https://datatracker.ietf.org/doc/charter-ietf-ivy/. 
          Understanding how the two efforts complement each other is important.</t>

        <t>The IVY effort focuses on the network inventory (as the charter says,
          "including a variety of information such as product name, vendor, product
          series, embedded software, and hardware/software versions").  The network
          inventory is probably the first use cases for the Digital Map.  Therefore,
          it is important to have a consistent view of what a network node is.  While
          a Digital Map must include a pointer to the hardware and software inventory
          information, we don't consider that all the inventory information is
          actually part of the Digital Map.  It must also be noted that the set of use
          cases for the Digital Map is wider than just the network inventory.</t>

        <t>The IVY charter also says that, "The Working Group will consider existing
          IETF work, including RFC 8348 and RFC 8345.".  In this document, RFC 8345 is
          considered as the base YANG module, therefore, there is clearly common
          ground with the work of the ivy working group.  This document goes beyond
          RFC 8345 to evaluate whether that RFC, along with all the augmented YANG
          modules, would be a good fit for all the Digital Map requirements.</t>

        <t>Additionally, the IVY charter says, "The WG will also identify a set of
          requirements and guidelines to ensure consistency across models related to
          inventory."  While the IVY requirements and guidelines focus on inventory,
          this document looks at the full set of requirements, guidelines, and
          building blocks for all the Digital Map use cases.  The inventory use case
          does not cover that full set, and other building blocks will be required:
          for example, to support point-to-multipoint connectivity</t>

        <t>Thus, this Digital Map modelling effort is complementary to the inventory
           work in IVY. It has a broader outlook covering all Digital Map use case
           requirements, and will correlate with the existing IETF models, e.g.,
           topology, service attachment points (SAP), etc.</t>
      </section>
    </section>

    <section anchor="Conclusions">
      <name>Conclusions</name>

      <t>Digital Map Modelling and Data are basis for the Digital Twin. During
      our PoC we have proven that Digital Map can be modelled using <xref
      target="RFC8345" />. Nevertheless, we proposed some
      extensions/augmentations to <xref target="RFC8345" /> to support Digital
      Maps. There must be some constraints in regards to how to augment the
      core Digital Map model for different Layers and Technologies in order to
      support the approach in our PoC. All entities must augment IETF node,
      IETF network, IETF link or IETF Termination Point and augmentation can
      only include new properties.</t>
    </section>

    <section anchor="security-considerations">
      <name>Security Considerations</name>

      <t>The digital map exposes a lot of key details about the network
        that may be confidential and might be valuable to an attacker.</t>

      <t>Future revisions will add more details of what information
        needs to be protected and how it may be protected</t>
    </section>

    <section anchor="iana-considerations">
      <name>IANA Considerations</name>

      <t>This document has no actions for IANA.</t>
    </section>
  </middle>

  <back>
    <references title="Normative References">
      <?rfc include='reference.RFC.2119'?>

      <?rfc include='reference.RFC.8174'?>

      <?rfc include='reference.RFC.8345'?>

      <?rfc include='reference.RFC.8346'?>

      <?rfc include='reference.RFC.8944'?>
    </references>

    <references title="Informative References">
      <?rfc include='reference.RFC.8299'?>

      <?rfc include='reference.RFC.8466'?>

      <?rfc include='reference.RFC.8795'?>

      <?rfc include='reference.RFC.9179'?>

      <?rfc include='reference.RFC.9182'?>

      <?rfc include='reference.RFC.9291'?>

      <?rfc include='reference.RFC.9408'?>

      <?rfc include='reference.RFC.9417'?>

      <?rfc include='reference.RFC.9418'?>

      <?rfc include='reference.I-D.ietf-teas-rfc3272bis'?>

      <?rfc include='reference.I-D.ietf-ccamp-network-inventory-yang'?>

      <?rfc include='reference.I-D.irtf-nmrg-network-digital-twin-arch'?>

      <?rfc include='reference.I-D.ogondio-opsawg-ospf-topology'?>

      <?rfc include='reference.I-D.ogondio-opsawg-isis-topology'?>

      <?rfc include='reference.I-D.davis-opsawg-some-refinements-to-rfc8345'?>

      <?rfc include='reference.I-D.boro-opsawg-ntw-attachment-circuit'?>

      <?rfc include='reference.I-D.boro-opsawg-teas-attachment-circuit'?>

      <?rfc include='reference.I-D.wzwb-opsawg-network-inventory-management'?>

      <?rfc include='reference.I-D.palmero-opsawg-dmlmo'?>

      <?rfc include='reference.I-D.feng-opsawg-incident-management'?>

      <reference anchor="Catalog"
                 target="https://yangcatalog.org/yang-search/impact_analysis/ietf-network-topology@2018-02-26">
        <front>
          <title></title>

          <author>
            <organization></organization>
          </author>

          <date />
        </front>
      </reference>
    </references>

    <?rfc needLines="100"?>

    <section numbered="false">
      <name>Contributors</name>

      <t>The following people all contributed to creating this document:</t>
    </section>

    <section numbered="false">
      <name>Acknowledgements</name>

      <t>Thanks to xx for their reviews and comments.</t>
    </section>
  </back>
</rfc>
<!-- Local Variables: -->
<!-- fill-column:72 -->
<!-- End: -->
