<?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.8 (Ruby 2.7.0) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-netconf-trace-ctx-extension-00" category="std" consensus="true" submissionType="IETF" obsoletes="draft-netconf-trace-ctx-extension-00" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.20.1 -->
  <front>
    <title abbrev="nc_trace">NETCONF Extension to support Trace Context propagation</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-netconf-trace-ctx-extension-00"/>
    <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="2024" month="March" day="17"/>
    <area>Operations and Management</area>
    <workgroup>Network Configuration</workgroup>
    <keyword>telemetry</keyword>
    <keyword>distributed systems</keyword>
    <keyword>opentelemetry</keyword>
    <abstract>
      <?line 77?>

<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://janlindblad.github.io/trace-ctx-extension/draft-ietf-netconf-trace-ctx-extension.html"/>.
        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/janlindblad/trace-ctx-extension"/>.</t>
    </note>
  </front>
  <middle>
    <?line 81?>

<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 complemetary 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 RFC 8309 shows the impact of distributed traces for a network operator.</t>
      <sourcecode type="art"><![CDATA[
                 ------------------                    -------------
                |   Orchestrator   |                   |           |
                |                  |     ------------> |           |
                .------------------.                   |           |
               .          :         .                  |           |
              .           :          .                 | Collector |
   ------------     ------------     ------------      | (Metrics, |
  |            |   |            |   |            |     |  Events,  |
  | Controller |   | Controller |   | Controller | --> |  Logs,    |
  |            |   |            |   |            |     |  Traces)  |
   ------------     ------------     ------------      |           |
      :              .       .               :         |           |
      :             .         .              :         |           |
      :            .           .             :         |           |
 ---------     ---------   ---------     ---------     |           |
| Network |   | Network | | Network |   | Network |    |           |
| Element |   | Element | | Element |   | Element | -> |           |
 ---------     ---------   ---------     ---------     -------------

    Figure 1: A Sample SDN Architecture from RFC8309 augmented
      to include the export of metrics, events, logs and traces
      from the different components to a common collector.
]]></sourcecode>
      <t>The network automation, management and control architectures are distributed in nature.  In order to "manage the managers", operators would like to use the same techniques as any other distributed systems in their IT environment.  Solutions for analysing Metrics, Events, Logs and Traces (M.E.L.T) are key for the successful monitoring and troubleshooting of such applications.  Initiatives such as the OpenTelemetry <xref target="OpenTelemetry"/> enable rich ecosystems of tools that NETCONF-based applications would want to participate in.</t>
      <t>With the implementation of this trace context propagation extension to NETCONF, backend systems behind the M.E.L.T collector will be able to correlate information from different systems but related to a common context.</t>
      <section anchor="implementation-example-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 Figure 2, we show a deployment based on Figure 1 with a single controller and two network elements.  In this example, the NETCONF protocol is running between the Orchestrator and the Controller.  NETCONF is also used between the Controller and the Network Elements.</t>
        <t>Let's assume an edit-config operation between the orchestrator and the controller that results (either synchronously or asynchronously) in corresponding edit-config operations from the Controller towards the two network elements.  All trace operations are related and will create M.E.L.T data.</t>
        <sourcecode type="art"><![CDATA[
             ------------------                         -------------
            |   Orchestrator   |    OTLP protocol       |           |
            |                  |  ------------------->  |           |
            .------------------.                        |           |
           .  NETCONF                                   |           |
          .   edit-config (trace-id "1", parent-id "A") | Collector |
 ------------                                           | (Metrics, |
|            |                                          |  Events,  |
| Controller |   ------------------------------------>  |  Logs,    |
|            |                 OTLP protocol            |  Traces)  |
 ------------                                           |           |
   :      .  NETCONF                                    |           |
   :        . edit-config (trace-id "1", parent-id "B") |           |
   :          .                                         |           |
 ---------     ---------                                |           |
| Network |   | Network |       OTLP protocol           |           |
| Element |   | Element |  -------------------------->  |           |
 ---------     ---------                                -------------

        Figure 2: An implementation example where the NETCONF
        protocol is used between the Orchestrator and the Controller
        and also between the Controller and the Network Elements.
        Every component exports M.E.L.T information to the collector
        using the OTLP protocol.
]]></sourcecode>
        <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 resources 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 an 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>
        <t>Note to be removed in the future: Some initial ideas are under discussion in the IETF for defining a standard YANG data model for traces. For example see: I-D.quilbeuf-opsawg-configuration-tracing which focusses only on configuration change root cause analysis use case (see the use case desciption below). These ideas are complementary to this draft.</t>
        <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 |  -------------------------->  |           |
|   YG DS |   |   YG DS |         pull or push          |           |
 ---------     ---------                                -------------

        Figure 3: 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.
]]></sourcecode>
      </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 faciliate 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 Figure 2, 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 infomration 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 anchor="terminology">
        <name>Terminology</name>
        <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT","SHOULD","SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they appear in all capitals, as shown here.</t>
        <t>The XML prefixes used in this document are mapped as follows:</t>
        <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-netconf-otlp-context=
"urn:ietf:params:xml:ns:yang:ietf-netconf-otlp-context"</t>
          </li>
        </ul>
      </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"/>.</t>
        <t>If the server rejects the RPC because of the trace context extension value, the server MUST return an 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 SHOULD contain a
otlp-trace-context-error-info structure with relevant details about
the error.  This structure is defined in the module
ietf-netconf-otlp-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-netconf-otlp-context=
            "urn:ietf:params:xml:ns:yang:otlp-context"
            message-id="1">
  <rpc-error>
    <error-type>protocol</error-type>
    <error-tag>operation-failed</error-tag>
    <error-severity>error</error-severity>
    <error-message>
      OTLP traceparent attribute incorrectly formatted
    </error-message>
    <error-info>
      <ietf-netconf-otlp-context:meta-name>
        w3ctc:traceparent
      </ietf-netconf-otlp-context:meta-name>
      <ietf-netconf-otlp-context:meta-value>
        Bad Format
      </ietf-netconf-otlp-context:meta-value>
      <ietf-netconf-otlp-context:error-type>
        ietf-netconf-otlp-context:bad-format
      </ietf-netconf-otlp-context:error-type>
    </error-info>
  </rpc-error>
</rpc-reply>
]]></sourcecode>
      </section>
      <section anchor="trace-context-extension-versionning">
        <name>Trace Context extension versionning</name>
        <t>This extension refers to the <xref target="W3C-Trace-Context"/> trace context capability. The W3C traceparent and trace-state 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 deffinition of new NETCONF capabilities for each headers' version.</t>
        <t>We define a pair YANG modules (ietf-netconf-otlp-context-traceparent-version-1.0.yang and ietf-netconf-otlp-context-tracestate-version-1.0.yang) that SHOULD 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-otlp-trace-context-error-info-structure">
        <name>YANG module for otlp-trace-context-error-info structure</name>
        <sourcecode type="yang" markers="true"><![CDATA[
module ietf-netconf-otlp-context {
  yang-version 1.1;
  namespace "urn:ietf:params:xml:ns:yang:otlp-context";
  prefix ietf-netconf-otlp-context;

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

  organization
     "IETF NETCONF (Network Configuration) Working Group";

  contact
    "WG Web:   <http://tools.ietf.org/wg/netconf/>
    WG List:  <mailto:netconf@ietf.org>";
  
  description 
    "When propagating tracing information across applications,
    client and servers needs to share some specific contextual 
    information. This NETCONF extensions aligns the NETCONF 
    protocol to the W3C trace-context document: 
    https://www.w3.org/TR/2021/REC-trace-context-1-20211123

    Copyright (c) <year> 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 2023-07-01 {
    description
      "Initial revision";
    reference
      "RFC XXXX";
  }

  identity meta-error {
    description "Base identity for otlp 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 otlp-trace-context-error-info {
    container otlp-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 OTLP 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-netconf-otlp-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"><![CDATA[
module ietf-netconf-otlp-context-traceparent-version-1.0 {
  namespace "urn:ietf:params:xml:ns:yang:traceparent:1.0";
  prefix ietf-netconf-otlpparent-1.0;
}
]]></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"><![CDATA[
module ietf-netconf-otlp-context-tracestate-version-1.0 {
  namespace "urn:ietf:params:xml:ns:yang:tracestate:1.0";
  prefix ietf-netconf-otlpstate-1.0;
}
]]></sourcecode>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>TODO Security</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document registers the following capability identifier URN in the 'Network Configuration Protocol (NETCONF) Capability URNs' registry:</t>
      <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://tools.ietf.org/html/rfc3688).</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-netconf-otlp-context-traceparent-version-1.0

  prefix: ietf-netconf-otlpparent-1.0

  namespace: urn:ietf:params:xml:ns:yang:traceparent:1.0

  RFC: XXXX
]]></artwork>
      <t>and</t>
      <artwork><![CDATA[
  name: ietf-netconf-otlp-context-tracestate-version-1.0

  prefix: ietf-netconf-otlpstate-1.0

  namespace: urn:ietf:params:xml:ns:yang:tracestate:1.0

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

  prefix: ietf-netconf-otlp-context

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

  RFC: XXXX
]]></artwork>
    </section>
    <section anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>TBD</t>
    </section>
  </middle>
  <back>
    <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="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="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="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="2022" month="August" day="29"/>
          </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="1" month="March" year="2024"/>
            <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 an inefficient mechanism for synchronization.  This
   document specifies an extension to NETCONF that allows clients and
   servers to keep synchronized with a much smaller data exchange and
   without any need for servers to store information about the clients.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-netconf-transaction-id-03"/>
        </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 557?>

<section anchor="changes-to-be-deleted-by-rfc-editor">
      <name>Changes (to be deleted by RFC Editor)</name>
      <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">
        <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">
        <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">
        <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="to-do-list-to-be-deleted-by-rfc-editor">
      <name>TO DO List (to be deleted by RFC Editor)</name>
      <ul spacing="normal">
        <li>
          <t>Security Considerations</t>
        </li>
        <li>
          <t>The W3C is working on a draft document to introduce the concept of "baggage" <xref target="W3C-Baggage"/> that we expect part of a future draft for NETCONF and RESTCONF</t>
        </li>
      </ul>
    </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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
ivcEsM1n62TRXchnBlPhHpEqsOK4iJeOymYmVYn/Rgu1mKCm0Ugya1GjwQxD
7w72aElBQx4BTLR9HnAp07LZF6tafwTDF4ZMZ7nYfYFjXC45f0s1BmX6E6wK
bNRKTrAwvCzRKkR6NiCiZP0sxxgUL6pUnKeGZovU5bbzmuBqr4dSifjk/4au
IlK+6JfFD8WLtg4aQOdZ8aJ6PCrjDx9nb386/XvpumNtDVfkfmuE6oEpokHP
IIxSen6nbrmTGTwbDHRGBqLdCXwhYIETY9EgF7kNEuVigpqBlpjw6dc8yVR7
BhgPbLSKCoZMcs8c3/Bm97rwMJejUkVJRF8nITdQ8OUhOBaK6VKuskJShdZU
oI9Og1rgnLTGmKTlo+i0VrJEGtUR/8As+Hux0AbeduMSyiMMkkWM5Bf/hP8+
+wt+SYya40cDKjGIqMeL0eHRPewJ3uYpRmWZQ8jzvpq3j9Vaw5F9Ja6/eV8W
GN6mikCXY7ZX6lA4r3FfSJ+8Nb6I4S77EowD3q3MzKXCGzs46gFeCLAOBybN
ntY0i/1ZFFr+IByIGA+2RCA2ihWaoBSO9qFHf3qWeuuxzWlQuwiE0CShnK8U
YVzbnecyzehyoTCV0XhNZ7XpAhv6DvqhcZKaDoJRQ/SgSPAN7q2syR75ec07
VYIuwAs1Hz6jhZUqU+jcYKQNg/B8J0LPzWMr6ny3tHEPAMchscqjt9HZHKIv
CgOdmuwO+SETmZh7K6Q7NNxbI9T/Itn+WiYYfYXl/B3FlWjFuzOeNW/xLTO0
9alauDUe1wMx3Kgb+C2YbQxxR7wjbHxn7KMZ7gi7NZmCEOrE/SW1fO5l9aUV
0+f7wcNGKzl72RZ51xjehW2teL+kr7aVexo2NVC+NKD7mr4OJ5ZKk+LKCZQ9
RGonaIz13GsDO/jzjQgfY1VphFdTvXQ4XBMCO8r+A4a5b0rieD+nl65tJ2sM
cMdsbari3+bWoLai6bZwrDHMfhP1JLmW7/gLCaHfe5uXBAb7Fxhy8G9uNmQq
y7bv6CIHV53b7Zo198VYLuUkzYADOV2Hd810RtAitvDslTPh8WSMirAvaWDD
qHlliuoofaHTkrKVfDFEy6Pg8LDNZmI5W3FtqjXR74Mu7sIgO77Z47WHx2Rk
7NVAvLMPsYi9eZZYxvNUkXYExM0KzCth2actK4TtbUqFdryeXN14aC2mUnPD
hcITFWb+HQvakA6K8i6JOW90+IJ6SPASN/JMFOA9MsNFoCVpD2Xn/e6uRKG1
nnsc+jC2QphxNXs4gZelkxJr5zBgwKH3Lw+/xCrRaViLYS0mg22LNft2A8va
er0GBgkoSmUT01qedfj0BPVM9ZrqIU2UTruIrAvfcwbGsmaQ3mlQAGmHhG2T
jjIs3PQtNyU5DKtZp1Snu5WNRTvsL1TM3LO1sJvIJz6DRsCWlnhiNBw9g2eo
NTUGAx6w32E/TnNsnvAZ2q9c2s+NaHIHe2RhciPpT8/oq78ppo888uTpKCjO
F5fOUnRpBU3w3OJ84W2GrEH7VKnqC1m67oLbE83LOAl0snjNbX39D9+AmE/Q
sH6OV9mN9/fp3Lu/ffNm5i7dZGUMPd6keJemeI43KFaFNU3cxZ4vCWz4H8e6
uPrUTGfy5/6isCDF2LrhLjxaMqDuRueFTnmuVKL5CDkGceieMnsvndXTmBql
/sEkQzbPLfqcuGGhSjrLdUM0DTH9xVtVqOwdI1pRGnOHX3l7I3tHJ8VyVZI9
uhvviecrJcuXXJt8hRfJulIrUDkaoQ6ud5N8kQXfJKp9lDJR5rg0jYuHoQiJ
yZBnvFCuDMBF9LUy6VSsJcEnkzRHRYdoxIwxekLmEB1+xvQriGsQ5cd0ESZd
0bLCxJGu+aYETkjqeoJeKHzn6xcBTKC4orwF9NLWOSN1y07chbpOMfv49eUr
YENuqxUz85SuLwOAL00A9dEwtsv3qNvR4o2aAUu42itt1p8Zliy49SsbU6LX
u5acdJGvCu6nNSCTCtszyCTmsvrIqtpGab+vqccLov4Kf81pkGvKKVg5CR4S
oolwgn14ho33nglb643900qrbGqxwAeFMlol2hd4t4kBK8x576DvvjPgfzF3
jZ9tzhs/U6rbfaARTCveEP0n39ulufFrK/O9w2K88/b4+x3mgB2b/d7ZPvtN
Y3RlwHcRE5gB3+OPmADf68x/W3bbNgduFVqpTGUECOtRdIAxJqPqA1VnDNz+
mTlzYDv1W7uAbWfp75U9C3O1oqNpJpyyNg16zlr5tnZ7DRwcrgscdg2ccoiJ
R0WvNJjr2fpUppiK7yb0E2B8iwwBYa/4s3WAZnG7xkyK65JvF0lBG7sjoQYK
C2AAn3cXfj8QOb7qSmQNhC5Z0ekNdoC2dAG6BmUeAqA7AmosQgza1nS0NOFS
TzNBGOEyR9X8y2bQub3OgOjoR4FNHQBHrpWBmz7axQFvmscbFnS7viwOc+Iw
fkr9aewDX3fbfDydVfT3WYgWuHVxQ0lih47gIVbEoKR1alxBRunLfRn9foAb
rrU1ZgamaXTQE8OkfF0M2sZkGvuuQfQ/nKHZh+3p8LZgYTX2WqmrofLA7vQc
QcSMF8U3XefGkWa6t/bKMxYmN+TE3G3Ikd6hUUMC9gdpmAItZYdawxIcTHvm
HnZiHFGuyNC2+yxADr4o2lgxOZ9Gz+A0DfMrGOMsbxbrYkaPLZlGSQtNMxSi
2dMfBcSuQTELNw8bTxukrboo2xCpoO96+HLHqQujp3aC5rSPEXrZf6Z0LI7N
ymZnbbgdR5TbNeJwn19PHX+lUos8bZrYspgkRLGpeTQhgd+CTvHH4XOt77Ab
n2vKz+GzpRvvRWyoyxUPARimWOMaWg3Og+5cnesrSrfBbk5olTnYc80bT39f
BHMMvIXgoOXONiG+Nfzf0sZwS1597/PYeBTokkRYuw3a8EUff/Si3wveoAC/
6G+c70/eBqNQzX/9x3/edsYcwoic3SJdpODgAZGGTTEmYqYtow3BEBTEvyvg
YGaCZs9+Z9xtWonB6VE0OtoCp2FQ8zehdC329mCM0gj3IpTn+cPwubaMDehE
/7TGvAUGa+h0PQc5er2rd6/eubd0if7x+fF6q4abVKoZ+O0UuW4krXxwOrg1
W3x3cW5Dlzvb/nyAOPFDQX+9Y+bEX42giLsQbQLZbJUHwieugoxbxyIwao37
vqd+CDI55lTOYCDYGQRLthWbshKNK9fNj3Xc3gZefDPKhb/egq41Ntsb2lV9
d3E2Xlvapnwc/T4FQ4UxjhOOso3JHCOwz04vv6HwAMA/Fuf7xwNznB7v40SV
DtMZG6+BgOHdCKvmpbK5ZO7ksBWEY8U5vvGUG4QYQg/08cHhgSMn/6TKg9VH
z8leR2evzXqhcG9EcJe6NL8BMuZ4CaEFy70fAvWakN4JtNMYD4XZKaTfBPKd
sIWNtgSt3a0F2BfiOP6YFzeZSmYc+epdff2Kf9gDb3bAFid8Pk3scmgmUZky
lgxy0SlFq/Zoz3iNJ1fstnBwRPmp7X5n6+CgF4njpFiaka1h+eEbeP6WLnko
1bLQONcquB+VG5zYS3zoKiJzbMbchIs/xpTm1bxY6CLf0VRemWV8iRKgENUh
jHAh8TjkR6xn/BRlKafZ+HoJdMMrDDGjZgI9c/ruDV3dTwDTpRgopuauBrDV
wGM5L8z1JLbA0h7x68DSIc50cBSsgnYA7U8dohahRBO9oB8xwtZ0t2XSdLwp
68UXDyXGLTalXw7au2tP/PW8wbDBbHi3KtvBiQPRdgmzRh0LHdFCDx0gHEX4
1hRLYcQPQ2dmUNfK/EyOuQHZDEY3rK78fR1r+SrKNXbkZU3ZnU2LBj8SAsN9
ODrxRO3SpESMru15ba0HtNaRGw3zZ2Zl4+3vbQp72+s9xt2HvBx18ZCI/xUe
U8NMNWZ3njru88GyREkfqtr8wwqNrfb+H3RwJ71kYsqKw8tluvJBrGk2/kgD
VjDP2QCw1wjjwRZXErp+yQnlKq/eCTC2MJV1ny6LNhpskUv786+nUKoNEc2a
zm/XdCc5U0LZonEq7IZl980PS/VNzYH5RSqsNqA0rz3w6vAkzd02ZpLgRCRR
2IZEcJFoSBz70NS1piNHfGLPXpxujicFV+Hcg48rd8GZLGe1vTsMTwjwictS
UooGTA3JJah8/r4BCwaHsKKAQWgciOIqAF0BN8MowKt6/8SULZAk8ylnc5o2
ThNmCUwqFlq1jkGBRdNCAYxHZ9LepBXfuYXpPoKBPOq137Ui8mOAq3G9oQvw
0cWONomI10fxr9ckaNeBSGHvd7lqDsmVHJhuMFFxOjvOJC2XsV6DGZdPQMNW
YrWbyig66Ks7qLYS90XM6+VVZ8U+jvFKLVUODkFMdwzhevkW91VQCoMnc80+
37hNCYd0eLBH6WEHqGxFPk/j2vR6xG5nxG7HDXazdPDrIQLTOXyMROC7CxUF
13DRjewfU7RKgCR0A4arZsAQb2N4UqUp39QYbAjY9T1d1cDuDDAOCFeJ95Dh
yWzT2Vw3hxPT6VXcibii4o4FeSIpc2W64W1eExB2IIKfBPLkNkGt3HSLgxvX
UCeHkwS/wzOX9gcBwASg4HmP1VFwdGEzh5sLrYbiW74OghJe2CYtaP9TeFUe
H5S3ijldKBOHtoQPU73aq2UychCYD35dTCfQTa/f+y3ZWEmgOAAmuzQanIwv
mRTu1+dw0zNnB7XQ4O6psvffSeqCNjJ2AAA=

-->

</rfc>
