<?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-10" 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-10"/>
    <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="October" day="25"/>
    <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), enabling distributed tracing scenarios. It is an adaptation of the HTTP-based W3C specification and defines three YANG modules.</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 subsystems, 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 metadata about the operation. Propagating this "trace context" between systems enables 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 for distributed systems such as those described 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 be related to the data 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: 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"/> because a given trace-id can be associated with 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, this document uses 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>The following example illustrates 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>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 toward 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>
        <t>This YANG module has normative references to [RFC8791].</t>
        <sourcecode type="yang" markers="true" name="ietf-trace-context@2026-10-25.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>

               Christian Rennerskog
               <mailto:crenners@cisco.com>

               Jan Lindblad
               <mailto:jan.lindblad+ietf@for.eco>

               Kristian Larsson
               <mailto:kll@dev.terastrm.net>
    ";
  description
    "When propagating tracing information across applications,
     client and servers need to share some specific contextual
     information. This extension 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 2026-10-25 {
    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 additional
        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@2026-10-25.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>

               Christian Rennerskog
               <mailto:crenners@cisco.com>

               Jan Lindblad
               <mailto:jan.lindblad+ietf@for.eco>

               Kristian Larsson
               <mailto:kll@dev.terastrm.net>
    ";
  description
    "This module documents the support for trace context traceparent
     version 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 2026-10-25 {
    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@2026-10-25.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>

               Christian Rennerskog
               <mailto:crenners@cisco.com>

               Jan Lindblad
               <mailto:jan.lindblad+ietf@for.eco>

               Kristian Larsson
               <mailto:kll@dev.terastrm.net>
    ";
  description
    "This module documents the support for trace context tracestate
     version 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 2026-10-25 {
    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 733?>

<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-09-to-version-10">
        <name>From version 09 to version 10</name>
        <ul spacing="normal">
          <li>
            <t>Aligned YANG module filenames with revision dates and updated both to 2026-10-25</t>
          </li>
          <li>
            <t>Fixed typo in Section 3.1 (additonal -&gt; additional)</t>
          </li>
        </ul>
      </section>
      <section anchor="from-version-08-to-version-09">
        <name>From version 08 to version 09</name>
        <ul spacing="normal">
          <li>
            <t>updated dates on YANG</t>
          </li>
          <li>
            <t>typos</t>
          </li>
          <li>
            <t>Grammar cleanups</t>
          </li>
        </ul>
      </section>
      <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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
GKBCkBL6RpkMkC4H/wUTwAvTqp4AAA==

-->

</rfc>
