<?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.6.17 (Ruby 2.6.8) -->


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

]>


<rfc ipr="trust200902" docName="draft-rogaglia-netconf-trace-ctx-extension-00" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="nc_trace">NETCONF Extension to support Trace Context propagation</title>

    <author fullname="Roque Gagliano">
      <organization>Cisco Systems</organization>
      <address>
        <postal>
          <street>Avenue des Uttins 5</street>
          <city>Rolle</city>
          <code>1180</code>
          <country>Switzerland</country>
        </postal>
        <email>rogaglia@cisco.com</email>
      </address>
    </author>
    <author fullname="Kristian Larsson">
      <organization>Deutsche Telekom AG</organization>
      <address>
        <email>kll@dev.terastrm.net</email>
      </address>
    </author>
    <author fullname="Jan Lindblad">
      <organization>Cisco Systems</organization>
      <address>
        <email>jlindbla@cisco.com</email>
      </address>
    </author>

    <date year="2022" month="October" day="12"/>

    <area>Operations and Management</area>
    <workgroup>NETCONF</workgroup>
    <keyword>telemetry</keyword> <keyword>distributed systems</keyword> <keyword>opentelemetry</keyword>

    <abstract>


<t>This document defines how to propagate trace context information across the Network Configuration Protocol (NETCONF), that enables distributed tracing scenarios.  It is an adaption of the HTTP-based W3C specification.</t>



    </abstract>

    <note title="About This Document" removeInRFC="true">
      <t>
        The latest revision of this draft can be found at <eref target="TBD"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-rogaglia-netconf-trace-ctx-extension/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        NETCONF Working Group mailing list (<eref target="mailto:netconf@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/netmod/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/netconf/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/TBD"/>.</t>
    </note>


  </front>

  <middle>


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

<t>Network automation and management systems commonly consist of multiple
sub-systems and together with the network devices they manage, they effectively form a distributed system.  Distributed tracing is a methodology implemented by tracing tools to follow, analyze and debug operations, such as configuration transactions, across multiple distributed systems.  An operation is uniquely identified by a trace-id and through a trace context, carries some metadata about the operation.  Propagating this "trace context" between systems enables forming a coherent view of the entire operation as carried out by all involved systems.</t>

<t>The W3C has defined two HTTP headers for context propagation that are useful in use case scenarios of distributed systems like the ones defined in <xref target="RFC8309"/>.  This document defines an extension to the NETCONF protocol to add the same concepts and enable trace context propagation over NETCONF.</t>

<t>It is worth noting that the trace context is not meant to have any relationship with the data that is carried with a given operation (including configurations, service identifiers or state information).</t>

<t>A trace context also differs from <xref target="I-D.lindblad-netconf-transaction-id"/> in several ways as the trace operation may involve any operation (including for example validate, lock, unlock, etc.) Additionally, a trace context scope may include the full application stack (orchestrator, controller, devices, etc) rather than a single NETCONF server, which is the scope for the transaction-id.</t>

<t>The following enhancement of the reference SDN Architecture from RFC 8309 shows the impact of distributed traces for a network operator.</t>

<figure><sourcecode type="art"><![CDATA[
                 ------------------                    -------------
                |   Orchestrator   |                   |           |
                |                  |     ------------> |           |
                .------------------.                   |           |
               .          :         .                  |           |
              .           :          .                 | Collector |
   ------------     ------------     ------------      | (Metrics, |
  |            |   |            |   |            |     |  Events,  |
  | Controller |   | Controller |   | Controller | --> |  Logs,    |
  |            |   |            |   |            |     |  Traces)  |
   ------------     ------------     ------------      |           |
      :              .       .               :         |           |
      :             .         .              :         |           |
      :            .           .             :         |           |
 ---------     ---------   ---------     ---------     |           |
| Network |   | Network | | Network |   | Network |    |           |
| Element |   | Element | | Element |   | Element | -> |           |
 ---------     ---------   ---------     ---------     -------------

    Figure 1: A Sample SDN Architecture from RFC8309 augmented
      to include the export of metrics, events, logs and traces
      from the different components to a common collector.
]]></sourcecode></figure>

<t>The network automation, management and control architectures are distributed in nature.  In order to "manage the managers", operators would like to use the same techniques as any other distributed systems in their IT environment.  Solutions for analysing Metrics, Events, Logs and Traces (M.E.L.T) are key for the successful monitoring and troubleshooting of such applications.  Initiatives such as the OpenTelemetry <xref target="OpenTelemetry"/> enable rich ecosystems of tools that NETCONF-based applications would want to participate in.</t>

<t>With the implementation of this trace context propagation extension to NETCONF, backend systems behind the M.E.L.T collector will be able to correlate information from different systems but related to a common context.</t>

<section anchor="implementation-example-opentelemetry"><name>Implementation example: OpenTelemetry</name>

<t>We will describe an example to show the value of trace context propagation in the NETCONF protocol.  In Figure 2, we show a deployment based on Figure 1 with a single controller and two network elements.  In this example, the NETCONF protocol is running between the Orchestrator and the Controller.  NETCONF is also used between the Controller and the Network Elements.</t>

<t>Let's assume an edit-config operation between the orchestrator and the controller that results (either synchronously or asynchronously) in corresponding edit-config operations from the Controller towards the two network elements.  All trace operations are related and will create M.E.L.T data.</t>

<figure><sourcecode type="art"><![CDATA[
             ------------------                         -------------
            |   Orchestrator   |    OTLP protocol       |           |
            |                  |  ------------------->  |           |
            .------------------.                        |           |
           .  NETCONF                                   |           |
          .   edit-config (trace-id "1", parent-id "A") | Collector |
 ------------                                           | (Metrics, |
|            |                                          |  Events,  |
| Controller |   ------------------------------------>  |  Logs,    |
|            |                 OTLP protocol            |  Traces)  |
 ------------                                           |           |
   :      .  NETCONF                                    |           |
   :        . edit-config (trace-id "1", parent-id "B") |           |
   :          .                                         |           |
 ---------     ---------                                |           |
| Network |   | Network |       OTLP protocol           |           |
| Element |   | Element |  -------------------------->  |           |
 ---------     ---------                                -------------

        Figure 2: An implementation example where the NETCONF 
        protocol is used between the Orchestrator and the Controller 
        and also between the Controller and the Network Elements. 
        Every component exports M.E.L.T information to the collector 
        using the OTLP protocol.
]]></sourcecode></figure>

<t>Each of the components in this example (Orchestrator, Controller and Network Elements) is exporting M.E.L.T information to the collector using the OpenTelemetry Protocol (OTLP).</t>

<t>For every edit-config operation, the trace context is included.  In particular, the same trace-id "1" (simplified encoding for documentation) is included in all related NETCONF messages, which enables the collector and any backend application to correlate all M.E.L.T messages related to this transaction in this distributed stack.</t>

<t>Another interesting attribute is the parent-id.  We can see in this example that the parent-id between the orchestrator and the controller ("A") is different from the one between the controller and the network elements ("B").  This attribute will help the collector and the backend applications to build a connectivity graph to understand how M.E.L.T information exported from one component relates to the information exported from a different component.</t>

<t>With this additional metadata exchanged between the components and exposed to the M.E.L.T collector, there are important improvements to the monitor and troubleshooting operations for the full application stack.</t>

</section>
<section anchor="use-cases"><name>Use Cases</name>

<section anchor="provisioning-root-cause-analysis"><name>Provisioning root cause analysis</name>

<t>When a provisioning activity fails, errors are typically propagated northbound, however this information may be difficult to troubleshoot and typically, operators are required to navigate logs across all the different components.</t>

<t>With the support for trace context propagation as described in this document for NETCONF, the telemetry collector will be able to search every trace, event, metric, or log in connection to that trace-id and perform a root cause analysis.</t>

</section>
<section anchor="system-performance-profiling"><name>System performance profiling</name>

<t>When operating a distributed system such as the one shown in Figure 2, operators are expected to benchmark what are the Key Performance Indicators (KPIs) for the most common tasks.  For example, what is the typical delay when provisioning a VPN service across different controllers and devices.</t>

<t>Thanks to Application Performance Management (APM) systems, from these KPIs, an operator can detect a normal and abnormal behaviour of the distributed system. Also, an operator can better plan any upgrades or enhancements in the platform.</t>

<t>With the support for context propagation as described in this document for NETCONF, much richer system-wide KPIs can be defined and used for troubleshooting as the metrics and traces propagated by the different components share a common context.  Troubleshooting for abnormal behaviours can also be troubleshot from the system view down to the individual element.</t>

</section>
</section>
<section anchor="terminology"><name>Terminology</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.</t>

<t>The XML prefixes used in this document are mapped as follows:</t>

<t><list style="symbols">
  <t>xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0",</t>
  <t>xmlns:notif="urn:ietf:params:xml:ns:netconf:notification:1.0",</t>
  <t>xmlns:yp="urn:ietf:params:xml:ns:yang:ietf-yang-patch" and</t>
  <t>xmlns:ypatch="urn:ietf:params:xml:ns:yang:ietf-yang-patch".</t>
</list></t>

</section>
</section>
<section anchor="netconf-extension"><name>NETCONF Extension</name>

<t>When performing NETCONF operations by sending NETCONF RPCs, a NETCONF client MAY include trace context information in the form of XML attributes.  The <xref target="W3C-Trace-Context"/> defines two HTTP headers; traceparent and tracestate for this purpose.  NETCONF clients that are taking advantage of this feature MUST add one w3ctc:traceparent attribute to the nc:rpc tag.</t>

<t>A NETCONF server that receives a trace context attribute in the form of a w3ctc:traceparent attribute SHOULD apply the mutation rules described in <xref target="W3C-Trace-Context"/>.  A NETCONF server MAY add one w3ctc:traceparent attribute in the nc:rpc-reply response to the nc:rpc tag above.  NETCONF servers MAY also add one w3ctc:traceparent attribute in notification and update message envelopes: notif:notification, yp:push-update and yp:push-change-update.</t>

<t>For example, a NETCONF client might send:</t>

<figure><sourcecode type="xml"><![CDATA[
<rpc xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="1"
     xmlns:w3ctc="urn:ietf:params:xml:ns:netconf:w3ctc:1.0"
     w3ctc:traceparent=
       "00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01">
  <get-config/>
</rpc>
]]></sourcecode></figure>

<t>In all cases above where a client or server adds a w3ctc:traceparent attribute to a tag, that client or server MAY also add one w3ctc:tracestate attribute to the same tag.</t>

<t>The proper encoding and interpretation of the contents of the w3ctc:traceparent attribute is described in <xref target="W3C-Trace-Context"/> section 3.2 except 3.2.1.  The proper encoding and interpretation of the contents in the w3ctc:tracestate attribute is described in <xref target="W3C-Trace-Context"/> section 3.3 except 3.3.1 and 3.3.1.1.  A NETCONF tag can only have zero or one w3ctc:tracestate attributes, so its content MUST always be encoded as a single string.  The tracestate field value is a list of list-members separated by commas (,).  A list-member is a key/value pair separated by an equals sign (=).  Spaces and horizontal tabs surrounding list-members are ignored.  There is no limit to the number of list-members in a list.</t>

<t>For example, a NETCONF client might send:</t>

<figure><sourcecode type="xml"><![CDATA[
<rpc xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="1"
     xmlns:w3ctc="urn:ietf:params:xml:ns:netconf:w3ctc:1.0"
     w3ctc:tracestate="rojo=00f067aa0ba902b7,congo=t61rcWkgMzE"
     w3ctc:traceparent=
       "00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01">
  <get-config/>
</rpc>
]]></sourcecode></figure>

<t>As in all XML documents, the order between the attributes in an XML tag has no significance.  Clients and servers MUST be prepared to handle the attributes no matter in which order they appear.  The tracestate value MAY contain double quotes in its payload.  If so, they MUST be encoded according to XML rules, for example:</t>

<figure><sourcecode type="xml"><![CDATA[
<rpc xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="1"
     xmlns:w3ctc="urn:ietf:params:xml:ns:netconf:w3ctc:1.0"
     w3ctc:traceparent=
       "00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01"
     w3ctc:tracestate=
       "value-with-quotes=&quot;Quoted string&quot;,other-value=123">
  <get-config/>
</rpc>
]]></sourcecode></figure>

<t>TBD Errors ....</t>

</section>
<section anchor="security-considerations"><name>Security Considerations</name>

<t>TODO Security</t>

</section>
<section anchor="iana-considerations"><name>IANA Considerations</name>

<t>This document registers the following capability identifier URN in the 'Network Configuration Protocol (NETCONF) Capability URNs' registry:</t>

<figure><artwork><![CDATA[
  urn:ietf:params:netconf:capability:w3ctc:1.0
]]></artwork></figure>

<t>This document registers one XML namespace URN in the 'IETF XML registry', following the format defined in <xref target="RFC3688"/> (https://tools.ietf.org/html/rfc3688).</t>

<figure><artwork><![CDATA[
  URI: urn:ietf:params:xml:ns:netconf:w3ctc:1.0

  Registrant Contact: The NETCONF WG of the IETF.

  XML: N/A, the requested URI is an XML namespace.
]]></artwork></figure>

</section>
<section anchor="acknowledgments"><name>Acknowledgments</name>

<t>TBD</t>

</section>


  </middle>

  <back>


    <references title='Normative References'>





<reference anchor='RFC2119' target='https://www.rfc-editor.org/info/rfc2119'>
<front>
<title>Key words for use in RFCs to Indicate Requirement Levels</title>
<author fullname='S. Bradner' initials='S.' surname='Bradner'><organization/></author>
<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' target='https://www.rfc-editor.org/info/rfc8174'>
<front>
<title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
<author fullname='B. Leiba' initials='B.' surname='Leiba'><organization/></author>
<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='RFC3688' target='https://www.rfc-editor.org/info/rfc3688'>
<front>
<title>The IETF XML Registry</title>
<author fullname='M. Mealling' initials='M.' surname='Mealling'><organization/></author>
<date month='January' year='2004'/>
<abstract><t>This document describes an IANA maintained registry for IETF standards which use Extensible Markup Language (XML) related items such as Namespaces, Document Type Declarations (DTDs), Schemas, and Resource Description Framework (RDF) Schemas.</t></abstract>
</front>
<seriesInfo name='BCP' value='81'/>
<seriesInfo name='RFC' value='3688'/>
<seriesInfo name='DOI' value='10.17487/RFC3688'/>
</reference>


<reference anchor="W3C-Trace-Context" target="https://www.w3.org/TR/2021/REC-trace-context-1-20211123/">
  <front>
    <title>W3C Recommendation on Trace Context</title>
    <author >
      <organization></organization>
    </author>
    <date year="2021" month="November" day="23"/>
  </front>
</reference>


    </references>

    <references title='Informative References'>

<reference anchor="OpenTelemetry" target="https://opentelemetry.io">
  <front>
    <title>OpenTelemetry Cloud Native Computing Foundation project</title>
    <author >
      <organization></organization>
    </author>
    <date year="2022" month="August" day="29"/>
  </front>
</reference>



<reference anchor='I-D.lindblad-netconf-transaction-id'>
   <front>
      <title>Transaction ID Mechanism for NETCONF</title>
      <author fullname='Jan Lindblad' initials='J.' surname='Lindblad'>
         <organization>Cisco Systems</organization>
      </author>
      <date day='8' month='June' year='2022'/>
      <abstract>
	 <t>   NETCONF clients and servers often need to have a synchronized view of
   the server&#39;s configuration data stores.  The volume of configuration
   data in a server may be very large, while data store changes
   typically are small when observed at typical client resynchronization
   intervals.

   Rereading the entire data store and analyzing the response for
   changes is an inefficient mechanism for synchronization.  This
   document specifies an extension to NETCONF that allows clients and
   servers to keep synchronized with a much smaller data exchange and
   without any need for servers to store information about the clients.

	 </t>
      </abstract>
   </front>
   <seriesInfo name='Internet-Draft' value='draft-lindblad-netconf-transaction-id-02'/>
   <format target='https://www.ietf.org/archive/id/draft-lindblad-netconf-transaction-id-02.txt' type='TXT'/>
</reference>


<reference anchor="W3C-Baggage" target="https://www.w3.org/TR/baggage/#examples-of-http-headers">
  <front>
    <title>W3C Propagation format for distributed context Baggage</title>
    <author >
      <organization></organization>
    </author>
    <date year="2021" month="November" day="23"/>
  </front>
</reference>




<reference anchor='RFC8309' target='https://www.rfc-editor.org/info/rfc8309'>
<front>
<title>Service Models Explained</title>
<author fullname='Q. Wu' initials='Q.' surname='Wu'><organization/></author>
<author fullname='W. Liu' initials='W.' surname='Liu'><organization/></author>
<author fullname='A. Farrel' initials='A.' surname='Farrel'><organization/></author>
<date month='January' year='2018'/>
<abstract><t>The IETF has produced many modules in the YANG modeling language. The majority of these modules are used to construct data models to model devices or monolithic functions.</t><t>A small number of YANG modules have been defined to model services (for example, the Layer 3 Virtual Private Network Service Model (L3SM) produced by the L3SM working group and documented in RFC 8049).</t><t>This document describes service models as used within the IETF and also shows where a service model might fit into a software-defined networking architecture.  Note that service models do not make any assumption of how a service is actually engineered and delivered for a customer; details of how network protocols and devices are engineered to deliver a service are captured in other modules that are not exposed through the interface between the customer and the provider.</t></abstract>
</front>
<seriesInfo name='RFC' value='8309'/>
<seriesInfo name='DOI' value='10.17487/RFC8309'/>
</reference>




    </references>


<section anchor="to-do-list-to-be-deleted-by-rfc-editor"><name>TO DO List (to be deleted by RFC Editor)</name>

<t><list style="symbols">
  <t>Manage versioning of the trace-context specification</t>
  <t>We intend to extend the trace-concext capability to RESTCONF in a future draft</t>
  <t>The W3C is working on a draft document to introduce the concept of "baggage" <xref target="W3C-Baggage"/> that we expect part of a future draft for NETCONF and RESTCONF</t>
</list></t>

</section>
<section anchor="xml-attributes-vs-rpcs-input-augmentations-discussion-to-be-deleted-by-rfc-editor"><name>XML Attributes vs RPCs input augmentations discussion (to be deleted by RFC Editor)</name>

<t>There are arguments that can be raised regarding using XML Attribute or to augment NETCONF RPCs.</t>

<t>We studied Pros/Cons of each option and decided to propose XML attributes:</t>

<t>XML Attributes Pro:</t>

<t><list style="symbols">
  <t>Literal alignment with W3C specification</t>
  <t>Same encoding for RESTCONF and NETCONF enabling code reuse</t>
  <t>One specification for all current and future rpcs</t>
</list></t>

<t>XML Attributes Cons:</t>

<t><list style="symbols">
  <t>No YANG modeling, multiple values represented as a single string</t>
  <t>Dependency on W3C for any extension or changes in the future as encoding will be dictated by string encoding</t>
</list></t>

<t>RPCs Input Augmentations Pro:</t>

<t><list style="symbols">
  <t>YANG model of every leaf</t>
  <t>Re-use of YANG toolkits</t>
  <t>Simple updates by augmentations on existing YANG module</t>
  <t>Possibility to express deviations in case of partial support</t>
</list></t>

<t>RPCs Input Augmentations Cons:</t>

<t><list style="symbols">
  <t>Need to augment every rpc, including future rpcs would need to consider these augmentations, which is harder to maintain</t>
  <t>There is no literal alignment with W3C standard. However, as mentioned before most of the time there will be modifications to the content</t>
  <t>Would need updated RFP for each change at W3C, which will make adoption of new features slower</t>
</list></t>

</section>


  </back>

<!-- ##markdown-source:
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
QAAA

-->

</rfc>

