<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.20 (Ruby 2.6.10) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-netconf-trace-ctx-extension-08" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.24.0 -->
  <front>
    <title abbrev="NETCONF Trace Context Extension">NETCONF Extension to support Trace Context propagation</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-netconf-trace-ctx-extension-08"/>
    <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="Christian Rennerskog">
      <organization>Cisco Systems</organization>
      <address>
        <email>crenners@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>All For Eco</organization>
      <address>
        <email>jan.lindblad+ietf@for.eco</email>
      </address>
    </author>
    <date year="2026" month="August" day="27"/>
    <area>Operations and Management</area>
    <workgroup>Network Configuration</workgroup>
    <keyword>telemetry</keyword>
    <keyword>distributed systems</keyword>
    <keyword>opentelemetry</keyword>
    <abstract>
      <?line 93?>

<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 removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-netconf-trace-ctx-extension/"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-netconf-trace-ctx-extension/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Network Configuration Working Group mailing list (<eref target="mailto:netconf@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/netconf/"/>.
        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/netconf-wg/trace-ctx-extension"/>.</t>
    </note>
  </front>
  <middle>
    <?line 97?>

<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.ietf-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. The trace context is also complementary to <xref target="I-D.ietf-netconf-transaction-id"/> as a given trace-id can be associated with the different transaction-ids as part of the information exported to the collector.</t>
      <t>The following enhancement of the reference SDN Architecture from <xref target="RFC8309"/> shows the impact of distributed traces for a network operator.</t>
      <figure anchor="rfc8309-sample-arch">
        <name>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.</name>
        <sourcecode type="art"><![CDATA[
                +------------------+                   +-----------+
                |   Orchestrator   |                   |           |
                |                  |     ------------> |           |
                .------------------.                   |           |
               .          :         .                  |           |
              .           :          .                 | Collector |
  +------------+   +------------+   +------------+     | (Metrics, |
  |            |   |            |   |            |     |  Events,  |
  | Controller |   | Controller |   | Controller | --> |  Logs,    |
  |            |   |            |   |            |     |  Traces)  |
  +------------+   +------------+   +------------+     |           |
      :              .       .               :         |           |
      :             .         .              :         |           |
      :            .           .             :         |           |
 +---------+  +---------+  +---------+  +---------+    |           |
 | Network |  | Network |  | Network |  | Network |    |           |
 | Element |  | Element |  | Element |  | Element | -> |           |
 +---------+  +---------+  +---------+  +---------+    +-----------+
]]></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>
      <t>This document does not cover the somewhat related functionality specified in <xref target="W3C-Baggage"/>.  Mapping of the Baggage functionality into YANG may be specified in a future document.</t>
      <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>Additionally, the document utilizes the following abbreviations:</t>
        <dl>
          <dt>OTLP:</dt>
          <dd>
            <t>OpenTelemetry protocol as defined by <xref target="OpenTelemetry"/></t>
          </dd>
          <dt>M.E.L.T.:</dt>
          <dd>
            <t>Metrics, Events, Logs and Traces</t>
          </dd>
          <dt>gNMI:</dt>
          <dd>
            <t>gRPC Network Management Interface, as defined by <xref target="gNMI"/></t>
          </dd>
        </dl>
        <t>The XML prefixes used in this document are mapped as follows:</t>
        <ul spacing="normal">
          <li>
            <t>xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0",</t>
          </li>
          <li>
            <t>xmlns:w3ctc="urn:ietf:params:xml:ns:netconf:w3ctc:1.0" and</t>
          </li>
          <li>
            <t>xmlns:ietf-trace-context=
  "urn:ietf:params:xml:ns:yang:ietf-trace-context"</t>
          </li>
        </ul>
      </section>
      <section anchor="implementation-example-1-opentelemetry">
        <name>Implementation example 1: OpenTelemetry</name>
        <t>We will describe an example to show the value of trace context propagation in the NETCONF protocol.  In the OTLP Sample Architecture <xref target="otlp-sample-arch"/>  below, we show a deployment based on the RFC8309 sample architecture <xref target="rfc8309-sample-arch"/> above, 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 anchor="otlp-sample-arch">
          <name>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.</name>
          <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 |  -------------------------->  |           |
+---------+   +---------+                               +-----------+
]]></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 monitoring and troubleshooting operations for the full application stack.</t>
      </section>
      <section anchor="implementation-example-2-yang-datastore">
        <name>Implementation example 2: YANG Datastore</name>
        <t>OpenTelemetry implements the "push" model for data streaming where information is sent to the back-end as soon as produced and is not required to be stored in the system. In certain cases, a "pull" model may be envisioned, for example for performing forensic analysis while not all OTLP traces are available in the back-end systems.</t>
        <t>An implementation of a "pull" mechanism for M.E.L.T. information in general and for traces in particular, could consist of storing traces in a YANG datastore (particularly the operational datastore.) Implementations should consider the use of circular buffers to avoid resource exhaustion. External systems could access traces (and particularly past traces) via NETCONF, RESTCONF, gNMI or other polling mechanisms. Finally, storing traces in a YANG datastore enables the use of YANG-Push <xref target="RFC8641"/> or gNMI Telemetry as additional "push" mechanisms.</t>
        <t>This document does not specify the YANG module in which traces could be stored inside the different components. That said, storing the context information described in this document as part of the recorded traces would allow back-end systems to correlate the information from different components as in the OpenTelemetry implementation.</t>
        <figure anchor="melt-example">
          <name>An implementation example where the NETCONF protocol is used between the Orchestrator and the Controller and also between the Controller and the Network Elements.  M.E.L.T. information is stored in local YANG Datastores and accessed by the collector using "pull" mechanisms using the NETCONF (NC), RESTCONF (RC) or gNMI protocols. A "push" strategy is also possible via YANG-Push or gNMI.</name>
          <sourcecode type="art"><![CDATA[
            +------------------+                        +-----------+
            | Orchestrator     |                        |           |
            |                  |    NC/RC/gNMI or YP    |           |
            |   YANG Datastore | <------------------->  |           |
            .------------------+     pull or push       |           |
           .  NETCONF                                   |           |
          .   edit-config (trace-id "1", parent-id "A") | Collector |
+----------------+                                      | (Metrics, |
|                |           NC/RC/gNMI or YP           |  Events,  |
| Controller     |   <------------------------------->  |  Logs,    |
|  YANG Datastore|             pull or push             |  Traces)  |
+----------------+                                      |           |
   :      .  NETCONF                                    |           |
   :        . edit-config (trace-id "1", parent-id "B") |           |
   :          .                                         |           |
+---------+   +---------+                               |           |
| Network |   | Network |        NC/RC/gNMI or YP       |           |
| Element |   | Element |  <------------------------->  |           |
| YANG DS |   | YANG DS |         pull or push          |           |
+---------+   +---------+                               +-----------+
]]></sourcecode>
        </figure>
      </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 collector will be able to search every trace, event, metric, or log in connection to that trace-id and facilitate the performance of a root cause analysis due to a network changes. The trace information could also be included as an optional resource with the different NETCONF transaction ids described in <xref target="I-D.ietf-netconf-transaction-id"/>.</t>
        </section>
        <section anchor="system-performance-profiling">
          <name>System performance profiling</name>
          <t>When operating a distributed system such as the one shown in <xref target="otlp-sample-arch"/>, operators are expected to benchmark 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 anchor="billing-and-auditing">
          <name>Billing and auditing</name>
          <t>In certain circumstances, we could envision tracing information used as additional inputs to billing systems. In particular, trace context information could be used to validate that a certain northbound order was carried out in southbound systems.</t>
        </section>
      </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 and MAY add one w3ctc:tracestate 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>
      <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>
      <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 XML 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 (=). All whitespace surrounding list members is ignored. There is no limit to the number of list members in a list.</t>
      <t>For example, a NETCONF client might send:</t>
      <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>
      <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, commas (,), or equals (=) signs in its payload.  If so, they MUST be encoded according to XML rules to avoid injection attacks, for example:</t>
      <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>
      <section anchor="error-handling">
        <name>Error handling</name>
        <t>When interacting with these extensions, the NETCONF server follow the specifications of section 2.3 in <xref target="W3C-Trace-Context"/>. A detailed processing model example is also provided in the document.  Based on this processing model, it is NOT RECOMMENDED to reject an RPC because of the trace context attribute values.</t>
        <t>If the server still decides to reject the RPC because of the trace context attribute values, ietf-trace-context.yang SHOULD be included in the YANG library and the server MUST return a NETCONF rpc-error with the following values:</t>
        <artwork><![CDATA[
  error-tag:      operation-failed
  error-type:     protocol
  error-severity: error
]]></artwork>
        <t>Additionally, the error-info tag MUST contain a trace-context-error-info structure with relevant details about the error.  This structure is defined in the module ietf-trace-context.yang.  Example of a badly formatted trace context extension:</t>
        <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=
       "Bad Format"
     w3ctc:tracestate=
       "value-with-quotes=&quot;Quoted string&quot;,other-value=123">
  <get-config/>
</rpc>
]]></sourcecode>
        <t>This might give the following error response:</t>
        <sourcecode type="xml"><![CDATA[
<rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"
            xmlns:w3ctc="urn:ietf:params:xml:ns:netconf:w3ctc:1.0"
            xmlns:ietf-trace-context=
            "urn:ietf:params:xml:ns:yang:ietf-trace-context"
            message-id="1">
  <rpc-error>
    <error-type>protocol</error-type>
    <error-tag>operation-failed</error-tag>
    <error-severity>error</error-severity>
    <error-message>
      Context traceparent attribute incorrectly formatted
    </error-message>
    <error-info>
      <ietf-trace-context:trace-context-error-info>
        <ietf-trace-context:meta-name>
          w3ctc:traceparent
        </ietf-trace-context:meta-name>
        <ietf-trace-context:meta-value>
          Bad Format
        </ietf-trace-context:meta-value>
        <ietf-trace-context:error-type>
          ietf-trace-context:bad-format
        </ietf-trace-context:error-type>
      </ietf-trace-context:trace-context-error-info>
    </error-info>
  </rpc-error>
</rpc-reply>
]]></sourcecode>
      </section>
      <section anchor="trace-context-extension-versioning">
        <name>Trace Context extension versioning</name>
        <t>This extension refers to the <xref target="W3C-Trace-Context"/> trace context capability. The W3C traceparent and tracestate headers include the notion of versions. It would be desirable for a NETCONF client to be able to discover the one or multiple versions of these headers supported by a server.</t>
        <t>To achieve this goal, and to avoid having to define a new NETCONF extension for each headers version, we define a pair of YANG modules (ietf-trace-ctx-traceparent-1.0.yang and ietf-trace-ctx-tracestate-1.0.yang) that MUST be included in the YANG library per <xref target="RFC8525"/> of the NETCONF server supporting the NETCONF Trace Context extension. These YANG module capabilities will refer to the headers' supported versions. Future updates of this document could include additional YANG modules for new headers' versions.</t>
      </section>
    </section>
    <section anchor="yang-modules">
      <name>YANG Modules</name>
      <t>This document defines three YANG modules:</t>
      <artwork><![CDATA[
- YANG module for ietf-trace-context structure as mentioned in section 2.1
- YANG module for traceparent header version as mentioned in section 2.2
- YANG module for tracestate header version as mentioned in section 2.2
]]></artwork>
      <section anchor="yang-module-for-ietf-trace-context-structure">
        <name>YANG module for ietf-trace-context structure</name>
        <sourcecode type="yang" markers="true" name="ietf-trace-context@2024-11-07.yang"><![CDATA[
module ietf-trace-context {
  yang-version 1.1;
  namespace 
    "urn:ietf:params:xml:ns:yang:ietf-trace-context";
  prefix ietf-trace-context;

  import ietf-yang-structure-ext {
    prefix sx;
    reference
      "RFC8791: YANG Data Structure Extensions";
  }

  organization
    "IETF NETCONF (Network Configuration) Working Group";
  contact
    "WG Web:   <https://datatracker.ietf.org/wg/netconf/>
     WG List:  <mailto:netconf@ietf.org>

     Authors:  Roque Gagliano
               <mailto:rogaglia@cisco.com>

               Jan Lindblad
               <mailto:jlindbla@cisco.com>

               Kristian Larsson
               <mailto:kll@dev.terastrm.net>
    ";
  description
    "When propagating tracing information across applications,
     client and servers needs to share some specific contextual
     information. This  extensions aligns the NETCONF and RESTCONF
     protocols to the W3C trace-context document:
     https://www.w3.org/TR/2021/REC-trace-context-1-20211123

     This document has a normative reference to RFC 8791.

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

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

     This version of this YANG module is part of RFC XXXX
     (https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself
     for full legal notices.

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

  revision 2024-11-07 {
    description
      "Initial revision";
    reference
      "RFC XXXX:
       NETCONF Extension to support Trace Context propagation";
  }

  identity meta-error {
    description
      "Base identity for trace context attribute errors.";
  }

  identity missing {
    base meta-error;
    description
      "Indicates an attribute or header that is required
       (in the current situation) is missing.";
  }

  identity bad-format {
    base meta-error;
    description
      "Indicates an attribute or header value where the
       value is incorrectly formatted.";
  }

  identity processing-error {
    base meta-error;
    description
      "Indicates that the server encountered a processing
       error while processing the attribute or header value.";
  }

  typedef meta-error-type {
    type identityref {
      base meta-error;
    }
    description
      "Error type";
  }

  sx:structure trace-context-error-info {
    description
      "This error is returned by a NETCONF or RESTCONF server
        when a client sends a NETCONF RPC with additonal
        attributes or RESTCONF RPC with additional headers
        for trace context processing, and there is an error
        related to them.  The server has aborted the RPC.";
    leaf meta-name {
      type string;
      mandatory true;
      description
        "The name of the problematic or missing meta information.
          In NETCONF, the qualified XML attribute name.
          In RESTCONF, the HTTP header name.
          If a client sent a NETCONF RPC with the attribute
          w3ctc:traceparent='incorrect-format'
          this leaf would have the value 'w3ctc:traceparent'";
    }
    leaf meta-value {
      type string;
      mandatory true;
      description
        "The value of the problematic meta information received
          by the server.
          If a client sent a NETCONF RPC with the attribute
          w3ctc:traceparent='incorrect-format'
          this leaf would have the value 'incorrect-format'.";
    }
    leaf error-type {
      type meta-error-type;
      mandatory true;
      description
        "Indicates the type of meta information problem
          detected by the server.
          If a client sent an RPC annotated with the attribute
          w3ctc:traceparent='incorrect-format'
          this leaf might have the value
          'ietf-trace-context:bad-format'.";
    }
  }
}
]]></sourcecode>
        <sourcecode type="text" markers="true" name="ietf-trace-context.tree"><![CDATA[
module: ietf-trace-context

  structure trace-context-error-info:
    +-- meta-name     string
    +-- meta-value    string
    +-- error-type    meta-error-type
]]></sourcecode>
      </section>
      <section anchor="yang-module-for-traceparent-header-version-10">
        <name>YANG module for traceparent header version 1.0</name>
        <sourcecode type="yang" markers="true" name="ietf-trace-ctx-traceparent-1.0@2024-11-07.yang"><![CDATA[
module ietf-trace-ctx-traceparent-1.0 {
  namespace 
  "urn:ietf:params:xml:ns:yang:ietf-trace-ctx-traceparent-1.0";
  prefix ietf-trace-ctx-traceparent-1.0;

  organization
    "IETF NETCONF (Network Configuration) Working Group";
  contact
    "WG Web:   <https://datatracker.ietf.org/wg/netconf/>
     WG List:  <mailto:netconf@ietf.org>

     Authors:  Roque Gagliano
               <mailto:rogaglia@cisco.com>

               Jan Lindblad
               <mailto:jlindbla@cisco.com>

               Kristian Larsson
               <mailto:kll@dev.terastrm.net>
    ";
  description
    "This module documents the support for trace context traceparent
     versiom 1.0 in alignment with W3C versions:
     https://www.w3.org/TR/2021/REC-trace-context-1-20211123

     This module is used for capability advertisement only, without
     any YANG data nodes. 

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

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

     This version of this YANG module is part of RFC XXXX
     (https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself
     for full legal notices.

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

  revision 2024-11-07 {
    description
      "Initial revision";
    reference
      "RFC XXXX:
       NETCONF Extension to support Trace Context propagation";
  }
}
]]></sourcecode>
      </section>
      <section anchor="yang-module-for-tracestate-header-version-10">
        <name>YANG module for tracestate header version 1.0</name>
        <sourcecode type="yang" markers="true" name="ietf-trace-ctx-tracestate-1.0@2024-11-07.yang"><![CDATA[
module ietf-trace-ctx-tracestate-1.0 {
  namespace 
    "urn:ietf:params:xml:ns:yang:ietf-trace-ctx-tracestate-1.0";
  prefix ietf-trace-ctx-tracestate-1.0;

  organization
    "IETF NETCONF (Network Configuration) Working Group";
  contact
    "WG Web:   <https://datatracker.ietf.org/wg/netconf/>
     WG List:  <mailto:netconf@ietf.org>

     Authors:  Roque Gagliano
               <mailto:rogaglia@cisco.com>

               Jan Lindblad
               <mailto:jlindbla@cisco.com>

               Kristian Larsson
               <mailto:kll@dev.terastrm.net>
    ";
  description
    "This module documents the support for trace context tracestate
     versiom 1.0 in alignment with W3C versions:
     https://www.w3.org/TR/2021/REC-trace-context-1-20211123

     This module is used for capability advertisement only, without
     any YANG data nodes. 

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

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

     This version of this YANG module is part of RFC XXXX
     (https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself
     for full legal notices.

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

  revision 2024-11-07 {
    description
      "Initial revision";
    reference
      "RFC XXXX:
       NETCONF Extension to support Trace Context propagation";
  }
}
]]></sourcecode>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>This section is modeled after the template described in Section 3.7 of <xref target="RFC9907"/>.</t>
      <t>The ietf-trace-context, ietf-trace-ctx-tracestate-1.0 and ietf-trace-ctx-traceparent-1.0  YANG modules define data models that are designed to be accessed via YANG-based management protocols, such as NETCONF <xref target="RFC6241"/> and RESTCONF <xref target="RFC8040"/>. These YANG-based management protocols (1) have to use a secure transport layer (e.g., SSH <xref target="RFC4252"/>, TLS <xref target="RFC8446"/>, and QUIC <xref target="RFC9000"/>) and (2) have to use mutual authentication.</t>
      <t>The Network Configuration Access Control Model (NACM) <xref target="RFC8341"/> provides the means to restrict access for particular NETCONF or RESTCONF users to a preconfigured subset of all available NETCONF or RESTCONF protocol operations and content.</t>
      <t>The YANG modules specified in this document are used to flag capabilities support and to define an error information structure. As such, these YANG modules do not contain any configuration data, state data or RPC definitions, which makes their security implications very limited.  The additional attributes specified in this document (but not in YANG modules, since YANG cannot be used to specify attributes) are worth mentioning, however.</t>
      <t>The traceparent and tracestate attributes make it easier to track the flow of requests and their downstream effect on other systems.  This is indeed the whole point with these attributes.  This knowledge could also be of use to bad actors that are working to build a map of the managed network.</t>
      <t>The meta-name and meta-value attributes in the ietf-trace-context.yang should not echo any information received from an erroneous request or the system, in order to avoid bad actors receiving additional contextual information.  When bad values are encountered, further processing of them should stop immediately.</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>
      <artwork><![CDATA[
  urn:ietf:params:netconf:capability:w3ctc:1.0
]]></artwork>
      <t>This document registers one XML namespace URN in the 'IETF XML registry', following the format defined in <xref target="RFC3688"/> (https://www.rfc-editor.org/rfc/rfc3688.html).</t>
      <artwork><![CDATA[
  URI: urn:ietf:params:xml:ns:netconf:w3ctc:1.0

  Registrant Contact: The IETF IESG.

  XML: N/A, the requested URI is an XML namespace.
]]></artwork>
      <t>This document registers three module names in the 'YANG Module Names' registry, defined in RFC 6020:</t>
      <artwork><![CDATA[
  name: ietf-trace-ctx-traceparent-1.0

  prefix: ietf-trace-ctx-traceparent-1.0

  namespace:
    urn:ietf:params:xml:ns:yang:ietf-trace-ctx-traceparent-1.0

  RFC: XXXX
]]></artwork>
      <t>and</t>
      <artwork><![CDATA[
  name: ietf-trace-ctx-tracestate-1.0

  prefix: ietf-trace-ctx-tracestate-1.0

  namespace:
    urn:ietf:params:xml:ns:yang:ietf-trace-ctx-tracestate-1.0

  RFC: XXXX
]]></artwork>
      <t>and</t>
      <artwork><![CDATA[
  name: ietf-trace-context

  prefix: ietf-trace-context

  namespace: urn:ietf:params:xml:ns:yang:ietf-trace-context

  RFC: XXXX
]]></artwork>
    </section>
    <section anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The authors would like to acknowledge the valuable feedback from Per Andersson.  Many thanks to Raul Rivas Felix, Alexander Stoklasa, Luca Relandini and Erwin Vrolijk for their help with the demos regarding integrations.  The help and support from Jean Quilbeuf and Benoit Claise has also been invaluable to this work.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC4252">
          <front>
            <title>The Secure Shell (SSH) Authentication Protocol</title>
            <author fullname="T. Ylonen" initials="T." surname="Ylonen"/>
            <author fullname="C. Lonvick" initials="C." role="editor" surname="Lonvick"/>
            <date month="January" year="2006"/>
            <abstract>
              <t>The Secure Shell Protocol (SSH) is a protocol for secure remote login and other secure network services over an insecure network. This document describes the SSH authentication protocol framework and public key, password, and host-based client authentication methods. Additional authentication methods are described in separate documents. The SSH authentication protocol runs on top of the SSH transport layer protocol and provides a single authenticated tunnel for the SSH connection protocol. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4252"/>
          <seriesInfo name="DOI" value="10.17487/RFC4252"/>
        </reference>
        <reference anchor="RFC6241">
          <front>
            <title>Network Configuration Protocol (NETCONF)</title>
            <author fullname="R. Enns" initials="R." role="editor" surname="Enns"/>
            <author fullname="M. Bjorklund" initials="M." role="editor" surname="Bjorklund"/>
            <author fullname="J. Schoenwaelder" initials="J." role="editor" surname="Schoenwaelder"/>
            <author fullname="A. Bierman" initials="A." role="editor" surname="Bierman"/>
            <date month="June" year="2011"/>
            <abstract>
              <t>The Network Configuration Protocol (NETCONF) defined in this document provides mechanisms to install, manipulate, and delete the configuration of network devices. It uses an Extensible Markup Language (XML)-based data encoding for the configuration data as well as the protocol messages. The NETCONF protocol operations are realized as remote procedure calls (RPCs). This document obsoletes RFC 4741. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6241"/>
          <seriesInfo name="DOI" value="10.17487/RFC6241"/>
        </reference>
        <reference anchor="RFC3688">
          <front>
            <title>The IETF XML Registry</title>
            <author fullname="M. Mealling" initials="M." surname="Mealling"/>
            <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="RFC8040">
          <front>
            <title>RESTCONF Protocol</title>
            <author fullname="A. Bierman" initials="A." surname="Bierman"/>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
            <author fullname="K. Watsen" initials="K." surname="Watsen"/>
            <date month="January" year="2017"/>
            <abstract>
              <t>This document describes an HTTP-based protocol that provides a programmatic interface for accessing data defined in YANG, using the datastore concepts defined in the Network Configuration Protocol (NETCONF).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8040"/>
          <seriesInfo name="DOI" value="10.17487/RFC8040"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC8341">
          <front>
            <title>Network Configuration Access Control Model</title>
            <author fullname="A. Bierman" initials="A." surname="Bierman"/>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
            <date month="March" year="2018"/>
            <abstract>
              <t>The standardization of network configuration interfaces for use with the Network Configuration Protocol (NETCONF) or the RESTCONF protocol requires a structured and secure operating environment that promotes human usability and multi-vendor interoperability. There is a need for standard mechanisms to restrict NETCONF or RESTCONF protocol access for particular users to a preconfigured subset of all available NETCONF or RESTCONF protocol operations and content. This document defines such an access control model.</t>
              <t>This document obsoletes RFC 6536.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="91"/>
          <seriesInfo name="RFC" value="8341"/>
          <seriesInfo name="DOI" value="10.17487/RFC8341"/>
        </reference>
        <reference anchor="RFC8446">
          <front>
            <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <date month="August" year="2018"/>
            <abstract>
              <t>This document specifies version 1.3 of the Transport Layer Security (TLS) protocol. TLS allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
              <t>This document updates RFCs 5705 and 6066, and obsoletes RFCs 5077, 5246, and 6961. This document also specifies new requirements for TLS 1.2 implementations.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8446"/>
          <seriesInfo name="DOI" value="10.17487/RFC8446"/>
        </reference>
        <reference anchor="RFC8525">
          <front>
            <title>YANG Library</title>
            <author fullname="A. Bierman" initials="A." surname="Bierman"/>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
            <author fullname="J. Schoenwaelder" initials="J." surname="Schoenwaelder"/>
            <author fullname="K. Watsen" initials="K." surname="Watsen"/>
            <author fullname="R. Wilton" initials="R." surname="Wilton"/>
            <date month="March" year="2019"/>
            <abstract>
              <t>This document describes a YANG library that provides information about the YANG modules, datastores, and datastore schemas used by a network management server. Simple caching mechanisms are provided to allow clients to minimize retrieval of this information. This version of the YANG library supports the Network Management Datastore Architecture (NMDA) by listing all datastores supported by a network management server and the schema that is used by each of these datastores.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8525"/>
          <seriesInfo name="DOI" value="10.17487/RFC8525"/>
        </reference>
        <reference anchor="RFC9000">
          <front>
            <title>QUIC: A UDP-Based Multiplexed and Secure Transport</title>
            <author fullname="J. Iyengar" initials="J." role="editor" surname="Iyengar"/>
            <author fullname="M. Thomson" initials="M." role="editor" surname="Thomson"/>
            <date month="May" year="2021"/>
            <abstract>
              <t>This document defines the core of the QUIC transport protocol. QUIC provides applications with flow-controlled streams for structured communication, low-latency connection establishment, and network path migration. QUIC includes security measures that ensure confidentiality, integrity, and availability in a range of deployment circumstances. Accompanying documents describe the integration of TLS for key negotiation, loss detection, and an exemplary congestion control algorithm.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9000"/>
          <seriesInfo name="DOI" value="10.17487/RFC9000"/>
        </reference>
        <reference anchor="RFC9907">
          <front>
            <title>Guidelines for Authors and Reviewers of Documents Containing YANG Data Models</title>
            <author fullname="A. Bierman" initials="A." surname="Bierman"/>
            <author fullname="M. Boucadair" initials="M." role="editor" surname="Boucadair"/>
            <author fullname="Q. Wu" initials="Q." surname="Wu"/>
            <date month="March" year="2026"/>
            <abstract>
              <t>This document provides guidelines for authors and reviewers of specifications containing YANG data models, including IANA-maintained YANG modules. Recommendations and procedures are defined, which are intended to increase interoperability and usability of Network Configuration Protocol (NETCONF) and RESTCONF protocol implementations that utilize YANG modules.</t>
              <t>This document obsoletes RFC 8407; it also updates RFC 8126 by providing additional guidelines for writing the IANA considerations for RFCs that specify IANA-maintained YANG modules.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="216"/>
          <seriesInfo name="RFC" value="9907"/>
          <seriesInfo name="DOI" value="10.17487/RFC9907"/>
        </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/>
            </author>
            <date year="2021" month="November" day="23"/>
          </front>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="OpenTelemetry" target="https://opentelemetry.io">
          <front>
            <title>OpenTelemetry Cloud Native Computing Foundation project</title>
            <author>
              <organization/>
            </author>
            <date year="2024" month="November" day="04"/>
          </front>
        </reference>
        <reference anchor="gNMI" target="https://github.com/openconfig/gnmi">
          <front>
            <title>gNMI - gRPC Network Management Interface</title>
            <author>
              <organization/>
            </author>
            <date year="2024" month="November" day="04"/>
          </front>
        </reference>
        <reference anchor="I-D.ietf-netconf-transaction-id">
          <front>
            <title>Transaction ID Mechanism for NETCONF</title>
            <author fullname="Jan Lindblad" initials="J." surname="Lindblad">
              <organization>All For Eco</organization>
            </author>
            <date day="7" month="October" year="2025"/>
            <abstract>
              <t>   NETCONF clients and servers often need to have a synchronized view of
   the server's configuration datastores.  The volume of configuration
   data in a server may be very large, while datastore changes typically
   are small when observed at typical client resynchronization
   intervals.

   Rereading the entire datastore and analyzing the response for changes
   is inefficient for synchronization.  This document specifies a
   NETCONF extension 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-ietf-netconf-transaction-id-11"/>
        </reference>
        <reference anchor="RFC8641">
          <front>
            <title>Subscription to YANG Notifications for Datastore Updates</title>
            <author fullname="A. Clemm" initials="A." surname="Clemm"/>
            <author fullname="E. Voit" initials="E." surname="Voit"/>
            <date month="September" year="2019"/>
            <abstract>
              <t>This document describes a mechanism that allows subscriber applications to request a continuous and customized stream of updates from a YANG datastore. Providing such visibility into updates enables new capabilities based on the remote mirroring and monitoring of configuration and operational state.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8641"/>
          <seriesInfo name="DOI" value="10.17487/RFC8641"/>
        </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/>
            </author>
            <date year="2021" month="November" day="23"/>
          </front>
        </reference>
        <reference anchor="RFC8309">
          <front>
            <title>Service Models Explained</title>
            <author fullname="Q. Wu" initials="Q." surname="Wu"/>
            <author fullname="W. Liu" initials="W." surname="Liu"/>
            <author fullname="A. Farrel" initials="A." surname="Farrel"/>
            <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>
    </references>
    <?line 723?>

<section anchor="appendix-a-example-of-yang-library-for-trace-context">
      <name>Appendix A: Example of yang-library for trace context</name>
      <t>This document includes three YANG modules, two of which are used only for
publishing the traceparent and tracestate header versions. This is an example
of a YANG library response for the modules in this document.</t>
      <sourcecode type="xml"><![CDATA[
<yang-library xmlns="urn:ietf:params:xml:ns:yang:ietf-yang-library">
  <module-set>
    <name>common</name>
        <module>
          <name>ietf-netconf-otlp-context</name>
          <revision>2023-07-01</revision>
          <namespace>urn:ietf:params:xml:ns:yang:otlp-context</namespace>
        </module>
    <module>
      <name>ietf-netconf-otlp-context-traceparent-version-1.0</name>
      <revision>2024-11-07</revision>
      <namespace>urn:ietf:params:xml:ns:yang:traceparent:1.0</namespace>
    </module>
    <module>
      <name>ietf-netconf-otlp-context-tracestate-version-1.0</name>
      <revision>2024-11-07</revision>
      <namespace>urn:ietf:params:xml:ns:yang:tracestate:1.0</namespace>
    </module>
  </module-set>
</yang-library>
]]></sourcecode>
    </section>
    <section anchor="changes-to-be-deleted-by-rfc-editor">
      <name>Changes (to be deleted by RFC Editor)</name>
      <section anchor="from-version-07-to-version-08">
        <name>From version 07 to version 08</name>
        <ul spacing="normal">
          <li>
            <t>Added comments from YANG DOCTOR review, includding adding mandatory leafs, adding a tree file, adding an appendix with the yang-library example</t>
          </li>
          <li>
            <t>Added  Christian Rennerskog as co-author</t>
          </li>
        </ul>
      </section>
      <section anchor="from-version-06-to-version-07">
        <name>From version 06 to version 07</name>
        <ul spacing="normal">
          <li>
            <t>All Shepperd comments.</t>
          </li>
          <li>
            <t>Corrected missing period in YANG modules to avoid pyang warning.</t>
          </li>
          <li>
            <t>Clarifies that all whitespaces are ignored.</t>
          </li>
          <li>
            <t>Enhanced tracestate encoding guidance to explicitly mention commas (,) and equals (=) signs must be encoded per XML rules to avoid injection attacks.</t>
          </li>
          <li>
            <t>Enhanced Security Considerations to clarify that meta-name and meta-value should not echo erroneous requests and that further processing should stop immediately when bad values are encountered.</t>
          </li>
          <li>
            <t>Added clarification that Clients and servers MUST be prepared to handle special characters in tracestate values.</t>
          </li>
        </ul>
      </section>
      <section anchor="from-version-05-to-version-06">
        <name>From version 05 to version 06</name>
        <ul spacing="normal">
          <li>
            <t>We introduced a bug in the YANG model in version 03 as container was not needed per RFC 8791.</t>
          </li>
          <li>
            <t>Serveral edits based on OpsDir comments</t>
          </li>
        </ul>
      </section>
      <section anchor="from-version-04-to-version-05">
        <name>From version 04 to version 05</name>
        <ul spacing="normal">
          <li>
            <t>More WGLC and sheepard comments</t>
          </li>
        </ul>
      </section>
      <section anchor="from-version-03-to-version-04">
        <name>From version 03 to version 04</name>
        <ul spacing="normal">
          <li>
            <t>WGLC data change.</t>
          </li>
        </ul>
      </section>
      <section anchor="from-version-02-to-03">
        <name>From version 02 to 03</name>
        <ul spacing="normal">
          <li>
            <t>Changed document Abbreviation</t>
          </li>
          <li>
            <t>trace-context-error-info is a container in example</t>
          </li>
        </ul>
      </section>
      <section anchor="from-version-01-to-02">
        <name>From version 01 to 02</name>
        <ul spacing="normal">
          <li>
            <t>Enhanced Terminology and moved it up in the document.</t>
          </li>
          <li>
            <t>Changed namespaces and module names to map WGLC comments
and IETF requirements</t>
          </li>
        </ul>
      </section>
      <section anchor="from-version-00-to-01">
        <name>From version 00 to 01</name>
        <ul spacing="normal">
          <li>
            <t>Added Security considerations</t>
          </li>
          <li>
            <t>Added Acknowledgements</t>
          </li>
          <li>
            <t>Added several Normative references</t>
          </li>
          <li>
            <t>Updated link to latest document on github</t>
          </li>
          <li>
            <t>Firmed up error handling and YANG-library to MUST-requirements</t>
          </li>
        </ul>
      </section>
      <section anchor="from-version-03-to-draft-ietf-netconf-trace-ctx-extension-00">
        <name>From version 03 to draft-ietf-netconf-trace-ctx-extension-00</name>
        <ul spacing="normal">
          <li>
            <t>Adopted by NETCONF WG</t>
          </li>
          <li>
            <t>Moved repository to NETCONF WG</t>
          </li>
          <li>
            <t>Changed build system to use martinthomson's excellent framework</t>
          </li>
          <li>
            <t>Ran make fix-lint to remove white space at EOL etc.</t>
          </li>
          <li>
            <t>Added this change note. No other content changes.</t>
          </li>
        </ul>
      </section>
      <section anchor="from-version-02-to-03-1">
        <name>From version 02 to 03</name>
        <ul spacing="normal">
          <li>
            <t>Changed IANA section to IESG per IANA email</t>
          </li>
          <li>
            <t>Created sx:structure and improved error example</t>
          </li>
          <li>
            <t>Added ietf-netconf-otlp-context.yang for the sx:structure</t>
          </li>
          <li>
            <t>Created a dedicated section for the YANG modules</t>
          </li>
        </ul>
      </section>
      <section anchor="from-version-01-to-02-1">
        <name>From version 01 to 02</name>
        <ul spacing="normal">
          <li>
            <t>Added Error Handling intial section</t>
          </li>
          <li>
            <t>Added how to manage versioning by defining YANG modules for each traceparent and trastate versions as defined by W3C.</t>
          </li>
          <li>
            <t>Added 'YANG Module Names'  to IANA Considerations</t>
          </li>
        </ul>
      </section>
      <section anchor="from-version-00-to-01-1">
        <name>From version 00 to 01</name>
        <ul spacing="normal">
          <li>
            <t>Added new section: Implementation example 2: YANG Datastore</t>
          </li>
          <li>
            <t>Added new use case: Billing and auditing</t>
          </li>
          <li>
            <t>Added in introduction and in "Provisioning root cause analysis" the idea that the different transaction-ids defined in <xref target="I-D.ietf-netconf-transaction-id"/> could be added as part of the tracing information to be exported to the collectors, showing how the two documents are complementary.</t>
          </li>
        </ul>
      </section>
    </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>
      <ul spacing="normal">
        <li>
          <t>Literal alignment with W3C specification</t>
        </li>
        <li>
          <t>Same encoding for RESTCONF and NETCONF enabling code reuse</t>
        </li>
        <li>
          <t>One specification for all current and future RPCss</t>
        </li>
      </ul>
      <t>XML Attributes Cons:</t>
      <ul spacing="normal">
        <li>
          <t>No YANG modeling, multiple values represented as a single string</t>
        </li>
        <li>
          <t>Dependency on W3C for any extension or changes in the future as encoding will be dictated by string encoding</t>
        </li>
      </ul>
      <t>RPCs Input Augmentations Pro:</t>
      <ul spacing="normal">
        <li>
          <t>YANG model of every leaf</t>
        </li>
        <li>
          <t>Re-use of YANG toolkits</t>
        </li>
        <li>
          <t>Simple updates by augmentations on existing YANG module</t>
        </li>
        <li>
          <t>Possibility to express deviations in case of partial support</t>
        </li>
      </ul>
      <t>RPCs Input Augmentations Cons:</t>
      <ul spacing="normal">
        <li>
          <t>Need to augment every RPC, including future RPCs would need to consider these augmentations, which is harder to maintain</t>
        </li>
        <li>
          <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>
        </li>
        <li>
          <t>Would need updated RFP for each change at W3C, which will make adoption of new features slower</t>
        </li>
      </ul>
    </section>
  </back>
  <!-- ##markdown-source:
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
zgHoqvd/AO0YtNuAnAAA

-->

</rfc>
