<?xml version="1.0" encoding="UTF-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.29 (Ruby 3.2.3) -->


<!DOCTYPE rfc  [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">

]>


<rfc ipr="trust200902" docName="draft-vivek-simap-external-relationship-00" category="info" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="ext-ref-model-simap">External Relationship model for SIMAP</title>

    <author initials="V." surname="Boudia" fullname="Vivekananda Boudia">
      <organization>INSA Lyon</organization>
      <address>
        <email>vivekananda.boudia@insa-lyon.fr</email>
      </address>
    </author>
    <author initials="P." surname="Francois" fullname="Pierre Francois">
      <organization>INSA Lyon</organization>
      <address>
        <email>pierre.francois@insa-lyon.fr</email>
      </address>
    </author>
    <author initials="S." surname="Mostafa" fullname="Sherif Mostafa">
      <organization>HUAWEI</organization>
      <address>
        <email>sherif.mostafa@huawei.com</email>
      </address>
    </author>

    <date year="2025" month="July" day="07"/>

    <area>Network Management Operations</area>
    <workgroup>Network Management Operations Area Working Group</workgroup>
    <keyword>simap</keyword>

    <abstract>


<?line 37?>

<t>abstract</t>



    </abstract>

    <note title="About This Document" removeInRFC="true">
      <t>
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-vivek-simap-external-relationship/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Network Management Operations Area Working Group Working Group mailing list (<eref target="mailto:nmop@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/nmop/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/nmop/"/>.
      </t>
    </note>


  </front>

  <middle>


<?line 41?>

<section anchor="introduction"><name>Introduction</name>

<t><xref target="RFC8345"/> defines a base model for representing network topology. 
This model can be augmented to include additional information, depending on the layer, service, or use case. 
However, continuously augmenting the base model can lead to excessive complexity and the inclusion of data that is irrelevant to many applications.</t>

<t>In some application contexts, it is impractical to maintain the whole network element information within the simap itself. To preserve an exploitable map of the network, it is thus sometimes preferable to keep the base topology model minimal and maintain context-specific information separately. 
Yet, a formal description of the method to be used to retrieve this information from the production network or any other external source should be maintained.</t>

<t>The goal of this document is to provide a common approach to describe such information retrieval methods, in a yang model.</t>

<t>The goal of this effort is to fulfill two key requirements: REQ-SCALES and REQ-SYNCH, defined in <xref section="4" sectionFormat="comma" target="I-D.draft-ietf-nmop-simap-concept"/>. 
<!-- TODO explain how it helps in fulfilling those requs --></t>

<!-- TODO Move example to somewhere more appropriate -->
<t>For example, when simulating a what-if scenario involving IGP convergence time after an IS-IS link failure, one might require timer-related attributes for each router.
While this information is essential in that context, it is unnecessary for many other use cases. 
In addition, some data elements may change frequently, making it challenging to keep the model synchronized.</t>

<t>In the general case, the method to retrieve a given type of information among many network elements is the same but for some parameters. We thus propose an approach to describe these methods using templates.</t>

<t>These templates are then associated with network element instances via a separate datastore referred to as the relation datastore. To stay efficient we add filtering mechanisms using for example typing and extra label.</t>

<t>This document first introduces the terminology used throughout the draft. 
It then describes the concepts of Template and Relation, followed by the filtering mechanisms available. 
Next, it explains how the model can be extended. The workflow is then presented, and the document concludes with the YANG module.</t>

</section>
<section anchor="terminology"><name>Terminology</name>

<t>Network Element: A Network, Node, Link, or Termination Point (TP), as defined in RFC 8345.</t>

<t>Template: A reusable model that describes how to retrieve a set of data.</t>

<t>Extra label: A set of keywords that describe the nature or category of information that can be retrieved using the Template.</t>

<t>Relation: An association between a Template and a Network Element, indicating that the Template should be applied to the element to retrieve a given set of information.</t>

</section>
<section anchor="template"><name>Template</name>

<t>A Template describes how to access data from a Network Element.
It is uniquely identified by an id in the form of a uri. The management of the id space is out of the scope of this document.</t>

<t>Each Template includes a textual description that explains its purpose and usage, along with additional key attributes, such as the Template's type, parameters, and request definitions, as described in the following sub section.</t>

<t>A separation between the template definition and their parameters is used in order to ensure reusability.</t>

<section anchor="type"><name>Type</name>

<t>Each Template includes a type attribute:</t>

<t>base-type: Indicates the general category of the data the Template is intended to retrieve. Possible values include:</t>

<t><list style="symbols">
  <t>config – for configuration data,</t>
  <t>state – for operational state data,</t>
  <t>metric – for performance metrics.</t>
</list></t>

<t>is-historical: A boolean flag indicating whether the Template is used to retrieve historical data (true) or only current data (false).</t>

<t>extra-label: A set of keywords that describe the nature or category of information that can be retrieved using the Template. 
These labels serve as metadata, enabling filtering, classification, and discovery of Templates based on their purpose or content (e.g., timers, interface-metrics, isis-state).</t>

</section>
<section anchor="parameter"><name>Parameter</name>

<t>Consider two routers: one with the identifier R1 and another with R2. 
If we wish to retrieve specific data for each router, the access paths might be <spanx style="verb">/specific/data/id/R1</spanx> and <spanx style="verb">/specific/data/id/R2</spanx>, respectively. 
Without a parameterization mechanism, we would need to define a separate Template for each router, which does not scale.</t>

<t>To address this, Templates support parameters. 
Instead of hardcoding the identifier, the Template encodes the path using a placeholder: <spanx style="verb">/specific/data/id/{router-id}</spanx>. 
The actual value of {router-id} is not stored within the Template itself, but is instead provided via the Relation datastore (described in the next section).</t>

<t>This design enables a single Template definition to be reused across multiple Network Elements, with per-instance values injected dynamically through Relations.</t>

</section>
<section anchor="request"><name>Request</name>

<t>While parameterization helps avoid duplication when all routers support the same protocol, challenges arise when devices support different access protocols. 
For instance, consider two routers: R1, which supports only RESTCONF, and R2, which supports only NETCONF. 
In such cases, although the data being retrieved is semantically the same, using a single protocol-specific Template per device would reintroduce redundancy.</t>

<t>To address this, a Template may define multiple protocol-specific access methods for retrieving the same data. 
Each method corresponds to a different protocol (e.g., RESTCONF, NETCONF) and includes a distinct request format or path.</t>

<t>For example:</t>

<t>The RESTCONF request path might be:
<spanx style="verb">/restconf/specific/data/id/{router-id}</spanx></t>

<t>The NETCONF XML filter might be:
<spanx style="verb">&lt;specific&gt;&lt;data&gt;&lt;id&gt;{router-id}&lt;/id&gt;&lt;/data&gt;&lt;/specific&gt;</spanx></t>

<t>The selection of which request to use for a given Network Element is determined by information stored in the Relation datastore (discussed in the next section). 
This allows a single Template to cover multiple access methods, while preserving reusability and minimizing duplication.</t>

</section>
</section>
<section anchor="relation"><name>Relation</name>

<t>A Relation defines the association between a Template and a Network Element. 
It provides the contextual parameters required to apply the Template to the targeted element.</t>

<t>Each Relation is uniquely identified by an id. To establish the linkage, the Relation contains:</t>

<t><list style="symbols">
  <t>A reference to the template-id of the associated Template.</t>
  <t>A reference to the network-element-id of the target Network Element.</t>
</list></t>

<t>A Relation contains additional contextual information that will be described in the following sections, including:</t>

<t><list style="symbols">
  <t>the supported request types,</t>
  <t>the parameter values, and</t>
  <t>the path identifying the target sub-layer (if applicable).</t>
</list></t>

<section anchor="request-supported"><name>Request supported</name>

<t>As previously described, a Template may include multiple protocol-specific request definitions. 
Since not all devices support all protocols, the Relation is responsible for specifying which request(s) are valid for the associated Network Element. 
This ensures that the correct method is used for data retrieval, without duplicating Template definitions.</t>

</section>
<section anchor="parameter-value"><name>Parameter value</name>

<t>In addition, each Relation stores the parameter values required to instantiate the associated Template. 
These values are used to replace placeholders (e.g., {router-id}) defined in the Template when constructing the actual request.</t>

<t>If a parameter required by the Template is not provided in the Relation, it is assumed that the user or the consuming system must supply this value at runtime. 
This design provides flexibility while ensuring that Templates remain reusable across different contexts.</t>

</section>
<section anchor="path"><name>Path</name>

<t>Depending on the network modeling approach, a Network Element may be encapsulated within multiple hierarchical layers — for example: base → L3 → IS-IS. 
Since each Network Element is uniquely identified at the base level, additional context may be required to indicate which layer or model a Template applies to.</t>

<t>To address this, the Relation includes an optional path value. This field specifies the relative path from the base element to the targeted sub-layer. For instance:</t>

<t><list style="symbols">
  <t>If the Template targets IS-IS attributes, the path value might be set to /l3/isis.</t>
  <t>If the Template applies to the base layer, the path is set to an empty string.</t>
</list></t>

<t>This mechanism enables precise scoping of the Template within a layered network model, without introducing ambiguity.</t>

</section>
</section>
<section anchor="filtering"><name>Filtering</name>

<t>To support efficient access and scalability, the system provides multiple filtering mechanisms for querying Relations and Templates. 
These filters allow consumers to retrieve only the relevant associations based on criteria.</t>

<t>Supported filtering options include:</t>

<t><list style="symbols">
  <t>By Network Element: Retrieve all Relations associated with a given network element identifier.</t>
  <t>By Request Type: Filter Relations or Templates based on supported protocol access methods (e.g., restconf, netconf).</t>
  <t>By Template Type: Select Templates based on their declared base-type (e.g., config, state, metric).</t>
  <t>By Extra Label : Retrieve Templates based on semantic tags (e.g., timers, isis, interface-metrics) that describe the type of information provided.</t>
</list></t>

<t>These filtering capabilities enable flexible integration with automation systems and monitoring platforms, while minimizing unnecessary processing and data retrieval.</t>

</section>
<section anchor="extensions"><name>Extensions</name>

<t>A base set of standard request types is provided as part of the Template request model. However, the model is extensible, allowing users to define custom request types as needed. 
This can be done by creating new request definitions within the Template, without requiring changes to the underlying data model.</t>

</section>
<section anchor="workflow"><name>Workflow</name>

<t>The following workflow outlines the typical steps involved in defining and using Templates and Relations to retrieve data from network elements of SIMAP :</t>

<t>1) Define a reusable Template that describes how to access a type of data. 
2) Create the SIMAP from the network.
3) Establish Relations to bind Templates to Network Elements based on their role. Populate the required parameters, path, and supported request types.
4) Using the filtering cocnept the system retrive the template needed and resolves parameters and selects the correct request type to fetch the desired data.</t>

</section>
<section anchor="yang-modules"><name>YANG Modules</name>

<section anchor="template-1"><name>template</name>

<figure><artwork><![CDATA[
<CODE BEGINS> 
module draft-template {
  yang-version 1.1;
  namespace "urn:ietf:params:xml:ns:yang:draft-template";
  prefix dr-tmp;

  import ietf-inet-types {
    prefix inet;
    reference
      "RFC 6991: Common YANG Data Types";
  }

  organization
    "INSA Lyon";
  contact
    "Editor:   Vivekananda Boudia
     <mailto:vivekananda.boudia@insa-lyon.fr>";
  description
    "template yang model";

  revision 2025-03-09 {
    description
      "Initial revision";
    reference
      "";
  }

  identity template-type {
    description
      "base identity for template type";
  }

  identity CONFIG {
    base template-type;
    description
      "template used to retrieve configuration data";
  }

  identity STATE {
    base template-type;
    description
      "template used to retrieve operational state data";
  }

  identity extra-label {
    description
      "base identity for extra label";
  }

  identity request-type {
    description
      "base identity for request type";
  }

  identity ALL_REQUEST {
    base request-type;
    description
      "all request";
  }

  identity NETCONF {
    base request-type;
    description
      "request that retrieves data using the NETCONF protocol";
  }

  grouping netconf-request {
    description
      "netconf request";
    leaf xpath {
      type string;
      description
        "netconf xpath for request";
    }
  }

  container template {
    description
      "template container";
    list template {
      key "template-id";
      description
        "template list";
      leaf template-id {
        type inet:uri;
        description
          "uniquely identifies a template";
      }
      leaf description {
        type string;
        description
          "template description";
      }
      container template-type {
        description
          "template type
           used for filtering";
        leaf base {
          type identityref {
            base template-type;
          }
          description
            "template base
             used for filtering";
        }
        leaf is-historical {
          type boolean;
          description
            "check is template is used to get historical data or not
             used for filtering";
        }
        leaf-list extra-label {
          type identityref {
            base extra-label;
          }
          description
            "extra label
             used for filtering";
        }
      }
      list parameter {
        key "param-id";
        description
          "list of parameter used by request";
        leaf param-id {
          type inet:uri;
          description
            "uniquely identifies a parameter";
        }
        leaf description {
          type string;
          description
            "parameter description";
        }
      }
      list request {
        key "request-type";
        description
          "request list";
        leaf request-type {
          type identityref {
            base request-type;
          }
          description
            "request type";
        }
        container request-builder {
          description
            "request container that allows users to retrieve data
             parameters must be enclosed in brackets.";
        }
      }
      container extra {
        description
          "use for augmentation";
      }
    }
  }

  augment "/template/template/request/request-builder" {
    when "derived-from-or-self(../request-type, 'NETCONF')";
    uses netconf-request;
    description
      "adding netconf request to possible request";
  }
}
<CODE ENDS>
]]></artwork></figure>

</section>
<section anchor="relation-1"><name>relation</name>

<figure><artwork><![CDATA[
<CODE BEGINS> 
module draft-relation {
  yang-version 1.1;
  namespace "urn:ietf:params:xml:ns:yang:draft-relation";
  prefix dr-rel;

  import ietf-inet-types {
    prefix inet;
    reference
      "RFC 6991: Common YANG Data Types";
  }
  import ietf-network {
    prefix nw;
    reference
      "RFC 8345: A YANG Data Model for Network Topologies";
  }
  import ietf-network-topology {
    prefix nt;
    reference
      "RFC 8345: A YANG Data Model for Network Topologies";
  }
  import draft-template {
    prefix dr-tmp;
  }

  organization
    "INSA Lyon";
  contact
    "Editor:   Vivekananda Boudia
     <mailto:vivekananda.boudia@insa-lyon.fr>";
  description
    "relations external of RFC8345";

  revision 2025-03-09 {
    description
      "Initial revision";
    reference
      "";
  }

  container relation {
    description
      "relation container";
    list relation {
      key "relation-id";
      description
        "relation list";
      leaf relation-id {
        type inet:uri;
        description
          "relation id";
      }
      choice network-element-ref {
        description
          "linking to RFC8345";
        leaf network-ref {
          type leafref {
            path "/nw:networks/nw:network/nw:network-id";
          }
          description
            "linking to network";
        }
        leaf node-ref {
          type leafref {
            path "/nw:networks/nw:network/nw:node/nw:node-id";
          }
          description
            "linking to node";
        }
        leaf link-ref {
          type leafref {
            path "/nw:networks/nw:network/nt:link/nt:link-id";
          }
          description
            "linking to link";
        }
        leaf tp-ref {
          type leafref {
            path "/nw:networks/nw:network/nw:node/nt:termination-point/nt:tp-id";
          }
          description
            "linking to termination point";
        }
      }
      leaf template-ref {
        type leafref {
          path "/dr-tmp:template/dr-tmp:template/dr-tmp:template-id";
        }
        description
          "reference to template";
      }
      leaf-list request-type-supported {
        type identityref {
          base dr-tmp:request-type;
        }
        description
          "template is generic and may include requests that are not supported by the network element
           here, we specify the types of requests that the network element supports
           if network element supports all template ALL-REQUEST may be used";
      }
      leaf path {
        type string;
        description
          "network element can be augmented and may contain containers nested within other containers.
           path is used for filtering.";
      }
      list parameter-value {
        key "param-ref request-type";
        description
          "parameter value from network element";
        leaf param-ref {
          type leafref {
            path "/dr-tmp:template/dr-tmp:template/dr-tmp:parameter/dr-tmp:param-id";
          }
          description
            "reference to template parameter";
        }
        leaf request-type {
          type identityref {
            base dr-tmp:request-type;
          }
          description
            "value can be different depending on the request";
        }
        leaf value {
          type string;
          description
            "value of the parameter";
        }
      }
    }
  }
}
<CODE ENDS>
]]></artwork></figure>

</section>
<section anchor="extended-example"><name>extended example</name>

<figure><artwork><![CDATA[
<CODE BEGINS> 
module draft-extended-example {
  yang-version 1.1;
  namespace "urn:ietf:params:xml:ns:yang:draft-extended-example";
  prefix dr-ext-exp;

  import draft-template {
    prefix dr-tmp;
  }

  organization
    "INSA Lyon";
  contact
    "Editor:   Vivekananda Boudia
     <mailto:vivekananda.boudia@insa-lyon.fr>";
  description
    "add external references to RFC8345";

  revision 2025-03-09 {
    description
      "Initial revision.";
    reference
      "";
  }

  identity AUGMENT-EXAMPLE-TEMPLATE-TYPE {
    base dr-tmp:template-type;
    description
      "augment example for template type";
  }

  identity AUGMENT-EXAMPLE-EXTRA-LABEL {
    base dr-tmp:extra-label;
    description
      "augment example for extra label";
  }

  identity AUGMENT-EXAMPLE-REQUEST-TYPE {
    base dr-tmp:request-type;
    description
      "augment example for request type";
  }

  grouping augment-example-request {
    description
      "augment example for a request";
    leaf foo {
      type string;
      description
        "leaf example";
    }
  }

  augment "/dr-tmp:template/dr-tmp:template/dr-tmp:request/dr-tmp:request-builder" {
    when "derived-from-or-self(../dr-tmp:request-type, 'AUGMENT-EXAMPLE-REQUEST-TYPE')";
    uses augment-example-request;
    description
      "we add our example to the possible request type";
  }
}
<CODE ENDS>
]]></artwork></figure>

</section>
</section>


  </middle>

  <back>



    <references title='Normative References' anchor="sec-normative-references">



<reference anchor="RFC8345">
  <front>
    <title>A YANG Data Model for Network Topologies</title>
    <author fullname="A. Clemm" initials="A." surname="Clemm"/>
    <author fullname="J. Medved" initials="J." surname="Medved"/>
    <author fullname="R. Varga" initials="R." surname="Varga"/>
    <author fullname="N. Bahadur" initials="N." surname="Bahadur"/>
    <author fullname="H. Ananthakrishnan" initials="H." surname="Ananthakrishnan"/>
    <author fullname="X. Liu" initials="X." surname="Liu"/>
    <date month="March" year="2018"/>
    <abstract>
      <t>This document defines an abstract (generic, or base) YANG data model for network/service topologies and inventories. The data model serves as a base model that is augmented with technology-specific details in other, more specific topology and inventory data models.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8345"/>
  <seriesInfo name="DOI" value="10.17487/RFC8345"/>
</reference>


<reference anchor="I-D.draft-ietf-nmop-simap-concept">
   <front>
      <title>SIMAP: Concept, Requirements, and Use Cases</title>
      <author fullname="Olga Havel" initials="O." surname="Havel">
         <organization>Huawei</organization>
      </author>
      <author fullname="Benoît Claise" initials="B." surname="Claise">
         <organization>Huawei</organization>
      </author>
      <author fullname="Oscar Gonzalez de Dios" initials="O. G." surname="de Dios">
         <organization>Telefonica</organization>
      </author>
      <author fullname="Thomas Graf" initials="T." surname="Graf">
         <organization>Swisscom</organization>
      </author>
      <date day="7" month="July" year="2025"/>
      <abstract>
	 <t>   This document defines the concept of Service &amp; Infrastructure Maps
   (SIMAP) and identifies a set of SIMAP requirements and use cases.
   The SIMAP was previously known as Digital Map.

   The document intends to be used as a reference for the assessment of
   the various topology modules to meet SIMAP requirements.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-ietf-nmop-simap-concept-05"/>
   
</reference>




    </references>




<?line 586?>

<section numbered="false" anchor="acknowledgments"><name>Acknowledgments</name>
<t>Acknowledgments</t>

</section>


  </back>

<!-- ##markdown-source:
H4sIAAAAAAAAA9Vc23LcxnZ9x1d0xg8WqwZDS/ZJxSNFZVoayayiaB2Sjuyn
CAP0zHSEAeagAVJzVHSdp3xAki/0l2Tt3Rc0MJghdclJ8qASCXTv3r0va1+6
wTiOo1rVuZyK0ex9LasiycWFzJNalYVeqY1Yl5nMxaKsxOXpq5PXoyiZzyt5
jfHyfR1XchHziFirdbIZRWlSy2VZbadCFYsyirIyLZI1yGdVsqjja3Ut35mx
sbTrgUi7XvzNN5Fu5mulNZ7U2w2mns6uXoioaNZzWU2jDCtMoxTDZaEbPRWL
JNcyAkcPo6SSCTg7l/VNWb0Tr5IiWcq1LGrx80ZWZpFRRO+WVdls7hoqTkBP
vMF7VSzFS5oyit7JLWZk00jEgjcSXcuiAUtCfDpRIcxWRzvP14nK8bxYl5sf
lKwXk7Ja0vOkSld4vqrrjZ4eH9MwegT5TtywY3pwPK/KGy2PicAxtNfUq7Ji
5o1e/oU0Aj6LLBE/lk2mEhAXmJ0U6q/MMRRwfnkizrZlQa+k5ei6nTiZ88Qf
VKGTOMe4yaIatUu8VrKqpHhRJUVaKn1P+hueBUpm1j7ilytZqYV4Veo6WQzw
/tMvJ29mpyFhzTMmazPjh1WT3Eg1Scv1KIqKslpj4jWp8+LFs3/69rs/4afT
+PnE2C+JNiZRWhuGGaZyU0+jKIrjWCRzXVdJWkdR+xM9X6ssy2UUfSVOi7oq
syYl5qLowwe7yO2tyORCFVKLRMwTLQO/q+SmkjD2muyisKZVl5syL5fbiYiu
Vkrb4WlSiLkUSbMko5MZhsEP07zJ8DDLFK0KByfX5H2WxRjrbmSREe2yEPVK
ijzZymostKyuVSrHkKdowFAKrrDaT+WNvKb32Do4aspG51u3IlEhEsEOiKVc
JsyKfJ9K+PU1iJXrTS7fqxpTi4znMJ/k9KJcCDh5gqdJLbA3BTvI5XUCNwKR
dVJg0maTq9Q41CSKTguhy7UMHzN/gBg9FspQWW9IIXidGzKqqPGP175Zlbn0
ssVi7LOBmMSNqld2MGseRLXMFxNxVQpWT4VdYavy/SYvVZ3MQY+GYS80x5J2
vNSrRjPHtVpD5SCwADzQHHD2TspNK0WnaCvOtSqwfM5S81uwW431RqZqodIO
51puEkCPzMlWfpP1GBbGb3OoXqeV2tRW6LQmWFqVrCzYEdTOP1ayrhS0jhEk
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

-->

</rfc>

