<?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.21 (Ruby 3.3.6) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-netconf-restconf-trace-ctx-headers-04" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.25.0 -->
  <front>
    <title abbrev="RESTCONF Trace Context Headers">RESTCONF Extension to Support Trace Context Headers</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-netconf-restconf-trace-ctx-headers-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="2024" month="December" day="12"/>
    <area>Operations and Management</area>
    <workgroup>NETCONF</workgroup>
    <keyword>telemetry</keyword>
    <keyword>distributed systems</keyword>
    <keyword>opentelemetry</keyword>
    <abstract>
      <?line 74?>

<t>This document defines an extension to the RESTCONF protocol in order to support Trace Context propagation as defined by the W3C.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://github.com/netconf-wg/restconf-trace-ctx-headers/blob/gh-pages/draft-ietf-netconf-restconf-trace-ctx-headers.txt"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-netconf-restconf-trace-ctx-headers/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        NETCONF Working Group mailing list (<eref target="mailto:netconf@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/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/https://github.com/netconf-wg/restconf-trace-ctx-headers"/>.</t>
    </note>
  </front>
  <middle>
    <?line 78?>

<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 track, analyze and debug operations such as configuration transactions, across multiple distributed systems.</t>
      <t>The W3C has defined two HTTP headers (traceparent and tracestate) in <xref target="W3C-Trace-Context"/> for context propagation that are useful for distributed systems like the ones defined in section 4 of <xref target="RFC8309"/>.</t>
      <t>According to the W3C specification, each operation is uniquely identified by a "trace-id" field, and carries multiple metadata fields about the operation.  Propagating this Trace Context between systems provides a coherent view of the entire operation as carried out by all involved systems.</t>
      <t>In <xref target="I-D.draft-ietf-netconf-trace-ctx-extension"/>, the NETCONF protocol extension is defined and we will re-use several of the YANG and XML objects defined in that document for RESTCONF. Please refer to that document for additional context and example applications.</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>
      </section>
    </section>
    <section anchor="restconf-extensions">
      <name>RESTCONF Extensions</name>
      <t>A RESTCONF server that implements the Trace Context propagation mechanism defined in this document MUST support the Trace Context traceparent header as defined in <xref target="W3C-Trace-Context"/>.</t>
      <t>A RESTCONF server SHOULD support the Trace Context tracestate header as defined in <xref target="W3C-Trace-Context"/>.</t>
      <section anchor="error-handling">
        <name>Error Handling</name>
        <t>A RESTCONF 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 header values.</t>
        <t>If a server decides to reject an RPC because of the Trace Context header values, the server MUST return a RESTCONF 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 relevant details about the error.</t>
        <t>Finally, the sx:structure defined in <xref target="I-D.draft-ietf-netconf-trace-ctx-extension"/> SHOULD be present in any error message from the server.</t>
      </section>
      <section anchor="trace-context-header-versioning">
        <name>Trace Context Header Versioning</name>
        <t>The RESTCONF protocol extension described in this document 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 RESTCONF client to be able to discover the one or multiple versions of these headers supported by a server.</t>
        <t><xref target="I-D.draft-ietf-netconf-trace-ctx-extension"/> defines a pair YANG modules that SHOULD be included in the YANG library per <xref target="RFC8525"/> of the RESTCONF server supporting the RESTCONF Trace Context extension 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="security-considerations">
      <name>Security Considerations</name>
      <t>The related document <xref target="I-D.draft-ietf-netconf-trace-ctx-extension"/> defines two YANG modules that are used when implementing the Trace Context concept, regardless of YANG-based protocol.  These modules are completely empty, and therefore have very limited security considerations. Their purpose is only to indicate which Trace Context header versions the server supports using YANG Library <xref target="RFC8525"/>.</t>
      <t>The traceparent and tracestate headers make it easier to track and correlate the flow of requests and their downstream effect on other systems.  This is indeed the whole point with these headers.  This knowledge may be used by unauthorized entities to infer a map of a managed network.</t>
      <t>All advice mentioned in the <xref target="W3C-Trace-Context"/> under the Privacy Considerations and Security Considerations also apply to this document.</t>
      <t>The lowest RESTCONF layer is HTTPS, and the mandatory-to-implement secure transport is TLS <xref target="RFC8446"/>.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document has no IANA actions.</t>
    </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 Med Boucadair, Jean Quilbeuf and Benoît 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="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="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="I-D.draft-ietf-netconf-trace-ctx-extension">
          <front>
            <title>NETCONF Extension to support Trace Context propagation</title>
            <author fullname="Roque Gagliano" initials="R." surname="Gagliano">
              <organization>Cisco Systems</organization>
            </author>
            <author fullname="Kristian Larsson" initials="K." surname="Larsson">
              <organization>Deutsche Telekom AG</organization>
            </author>
            <author fullname="Jan Lindblad" initials="J." surname="Lindblad">
              <organization>Cisco Systems</organization>
            </author>
            <date day="12" month="December" year="2024"/>
            <abstract>
              <t>   This document defines how to propagate trace context information
   across the Network Configuration Protocol (NETCONF), that enables
   distributed tracing scenarios.  It is an adaption of the HTTP-based
   W3C specification.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-netconf-trace-ctx-extension-03"/>
        </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>
        <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>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <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 150?>

<section anchor="example-restconf-calls">
      <name>Example RESTCONF Calls</name>
      <t>All examples from Appendix B of <xref target="RFC8040"/> could be recreated in this section by adding the new header described in this document. We selected one example from that document as reference.</t>
      <section anchor="successful-creation-of-new-data-resources-from-appendix-b21-of-rfc8040">
        <name>Successful creation of New Data Resources (from Appendix B.2.1 of <xref target="RFC8040"/>)</name>
        <t>To create a new "artist" resource within the "library" resource, a client might send the following request:</t>
        <artwork><![CDATA[
  POST /restconf/data/example-jukebox:jukebox/library HTTP/1.1
  Host: example.com
  Content-Type: application/yang-data+json
  traceparent: 00-405062f633be64ee006089dfca95a153-e021f9e263aad8e2-01
  tracestate: vendorname1=opaqueValue1,vendorname2=opaqueValue2

  {
    "example-jukebox:artist" : [
      {
        "name" : "Foo Fighters"
      }
    ]
  }
]]></artwork>
        <t>If the resource is created, the server might respond as follows:</t>
        <artwork><![CDATA[
  HTTP/1.1 201 Created
  Date: Thu, 26 Jan 2017 20:56:30 GMT
  Server: example-server
  Location: https://example.com/restconf/data/\
      example-jukebox:jukebox/library/artist=Foo%20Fighters
  Last-Modified: Thu, 26 Jan 2017 20:56:30 GMT
  ETag: "b3830f23a4c"
  traceparent: 00-405062f633be64ee006089dfca95a153-e021f9e263aad8e2-01
  tracestate: vendorname1=opaqueValue1,vendorname2=opaqueValue2
]]></artwork>
      </section>
      <section anchor="unsuccessful-creation-of-new-data-resources-from-appendix-b21-of-rfc8040">
        <name>Unsuccessful creation of New Data Resources (from Appendix B.2.1 of <xref target="RFC8040"/>)</name>
        <t><xref target="W3C-Trace-Context"/> specifies that a vendor may validate the tracestate header and that invalid headers may be discarded. Section 2.1 on <xref target="error-handling">Error handling</xref>, states that servers may return an error. Let's assume that an implementation follows that behavior.</t>
        <t>Example of a badly formated tracestate header using <xref target="RFC8040"/> example (Appendix B.2.1), in which a server receives the following:</t>
        <artwork><![CDATA[
  POST /restconf/data/example-jukebox:jukebox/library HTTP/1.1
  Host: example.com
  Content-Type: application/yang-data+json
  traceparent: 00-405062f633be64ee006089dfca95a153-e021f9e263aad8e2-01
  tracestate: SomeBadFormatHere

  {
    "example-jukebox:artist" : [
      {
        "name" : "Foo Fighters"
      }
    ]
  }
]]></artwork>
        <t>To which the server responds with an error message:</t>
        <artwork><![CDATA[
 HTTP/1.1 400 Bad Request
 Date: Thu, 20 Jun 2024 20:56:30 GMT
 Server: example-server
 Content-Type: application/yang-data+json

 { "ietf-restconf:errors" : {
     "error" : [
        {
          "error-type" : "protocol",
          "error-tag" : "operation-failed",
          "error-severity" : "error",
          "error-message" :
          "Context traceparent header incorrectly formatted",
          "error-info": {
            "ietf-trace-context:trace-context-error-info" : {
              "ietf-trace-context:meta-name" : "tracestate",
              "ietf-trace-context:meta-value" :
              "SomeBadFormatHere",
              "ietf-trace-context:error-type" :
              "ietf-trace-context:bad-format"
            }
          }
        }
     ]
   }
 }
]]></artwork>
      </section>
    </section>
    <section anchor="changes-to-be-deleted-by-rfc-editor">
      <name>Changes (to be deleted by RFC Editor)</name>
      <section anchor="from-version-03-to-04">
        <name>From version 03 to 04</name>
        <ul spacing="normal">
          <li>
            <t>Abbreviation change</t>
          </li>
          <li>
            <t>"ietf-trace-contex:trace-context-error-info" should have been a container in example</t>
          </li>
        </ul>
      </section>
      <section anchor="from-version-02-to-03">
        <name>From version 02 to 03</name>
        <ul spacing="normal">
          <li>
            <t>Added abbreviations to terminology</t>
          </li>
          <li>
            <t>error messages are SHOULD to align with W3C handling.</t>
          </li>
          <li>
            <t>Addapted example to YANG module changes in reference.</t>
          </li>
        </ul>
      </section>
      <section anchor="from-version-01-to-02">
        <name>From version 01 to 02</name>
        <ul spacing="normal">
          <li>
            <t>Added WGLC comments</t>
          </li>
          <li>
            <t>Changed namespaces and module name</t>
          </li>
          <li>
            <t>Fix error in error response</t>
          </li>
          <li>
            <t>Comments from Med Boucadair</t>
          </li>
          <li>
            <t>Removed markdown formatting of tracestate and traceparent, as toolchain could not handle this properly</t>
          </li>
          <li>
            <t>Removed references to RFC8341 (NACM) as the passage in the security considerations no longer need it</t>
          </li>
          <li>
            <t>Rearranged text in introduction to include referenes in a more natural order</t>
          </li>
          <li>
            <t>Removed several references to "we" and replaced with more neutral language</t>
          </li>
          <li>
            <t>Clarified that everything described as MUST requirements in this document only apply to RESTCONF implementations that implement this document. Other RESTCONF implementations do not need to care about this document, it's an optional extension</t>
          </li>
          <li>
            <t>Clarified that the YANG modules used by this document is defined by the sibling document for NETCONF</t>
          </li>
          <li>
            <t>Lots of updated wording based on review feedback</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>Added links to latest document on github</t>
          </li>
          <li>
            <t>Added RESTCONF example for success and error</t>
          </li>
          <li>
            <t>Modified Error Handling to reflect better W3C alignment based on implementation feedback</t>
          </li>
          <li>
            <t>Firmed up error handling and YANG-library to MUST-requirements</t>
          </li>
        </ul>
      </section>
      <section anchor="from-version-00-to-draft-ietf-netconf-restconf-trace-ctx-headers-00">
        <name>From version 00 to draft-ietf-netconf-restconf-trace-ctx-headers-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>
  </back>
  <!-- ##markdown-source:
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
/dtnBQor1YN3hKF36qvOmDM6/wWOKuBcDS4AAA==

-->

</rfc>
