<?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.24 (Ruby 3.3.6) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-netconf-trace-ctx-extension-04" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.28.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-04"/>
    <author fullname="Roque Gagliano">
      <organization>Cisco Systems</organization>
      <address>
        <postal>
          <street>Avenue des Uttins 5</street>
          <city>Rolle</city>
          <code>1180</code>
          <country>Switzerland</country>
        </postal>
        <email>rogaglia@cisco.com</email>
      </address>
    </author>
    <author fullname="Kristian Larsson">
      <organization>Deutsche Telekom AG</organization>
      <address>
        <email>kll@dev.terastrm.net</email>
      </address>
    </author>
    <author fullname="Jan Lindblad">
      <organization>Cisco Systems</organization>
      <address>
        <email>jlindbla@cisco.com</email>
      </address>
    </author>
    <date year="2025" month="March" day="03"/>
    <area>Operations and Management</area>
    <workgroup>Network Configuration</workgroup>
    <keyword>telemetry</keyword>
    <keyword>distributed systems</keyword>
    <keyword>opentelemetry</keyword>
    <abstract>
      <?line 86?>

<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 90?>

<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 (=).  Spaces and horizontal tabs surrounding list-members are ignored.  There is no limit to the number of list-members in a list.</t>
      <t>For example, a NETCONF client might send:</t>
      <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 in its payload.  If so, they MUST be encoded according to XML rules, 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>The NETCONF server SHOULD follow the "Processing Model for Working with Trace Context" as specified in <xref target="W3C-Trace-Context"/>.  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, 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-netconf-context.yang.  Example of a badly formated 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. We would like to achieve this goal avoiding the definition of new NETCONF capabilities for each headers' version.</t>
        <t>We define a pair 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 capabilities that 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>
      <section anchor="yang-module-for-trace-context-error-info-structure">
        <name>YANG module for trace-context-error-info 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

     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 {
    container 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;
        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;
        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;
        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>
      </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

     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

     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>The YANG modules specified in this document are used to flag capabilities define and define an error information structure that is designed to be accessed via network management protocols such as NETCONF <xref target="RFC6241"/> or RESTCONF <xref target="RFC8040"/>.</t>
      <t>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 lowest NETCONF layer is the secure transport layer, and the mandatory-to-implement secure transport is Secure Shell (SSH) <xref target="RFC6242"/>. The lowest RESTCONF layer is HTTPS, and the mandatory-to-implement secure transport is TLS <xref target="RFC8446"/>.</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>
    </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:trace-context

  RFC: XXXX
]]></artwork>
    </section>
    <section anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The authors would like to acknowledge the valuable implementation feedback from Christian Rennerskog and 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="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="RFC6242">
          <front>
            <title>Using the NETCONF Protocol over Secure Shell (SSH)</title>
            <author fullname="M. Wasserman" initials="M." surname="Wasserman"/>
            <date month="June" year="2011"/>
            <abstract>
              <t>This document describes a method for invoking and running the Network Configuration Protocol (NETCONF) within a Secure Shell (SSH) session as an SSH subsystem. This document obsoletes RFC 4742. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6242"/>
          <seriesInfo name="DOI" value="10.17487/RFC6242"/>
        </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="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>Cisco Systems</organization>
            </author>
            <date day="20" month="February" year="2025"/>
            <abstract>
              <t>   NETCONF clients and servers often need to have a synchronized view of
   the server's configuration data stores.  The volume of configuration
   data in a server may be very large, while data store changes
   typically are small when observed at typical client resynchronization
   intervals.

   Rereading the entire data store and analyzing the response for
   changes is 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-08"/>
        </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 691?>

<section anchor="changes-to-be-deleted-by-rfc-editor">
      <name>Changes (to be deleted by RFC Editor)</name>
      <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 rpcs</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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
l8jY7HRz29QUytNCY0is6PwvVTKqQSOOAAA=

-->

</rfc>
