<?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.43 (Ruby 3.4.9) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-netconf-restconf-trace-ctx-headers-11" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.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-11"/>
    <author fullname="Roque Gagliano">
      <organization>Cisco Systems</organization>
      <address>
        <postal>
          <street>Avenue des Uttins 5</street>
          <city>Rolle</city>
          <code>1180</code>
          <country>Switzerland</country>
        </postal>
        <email>rogaglia@cisco.com</email>
      </address>
    </author>
    <author fullname="Christian Rennerskog">
      <organization>Cisco Systems</organization>
      <address>
        <email>crenners@cisco.com</email>
      </address>
    </author>
    <author fullname="Kristian Larsson">
      <organization>Deutsche Telekom AG</organization>
      <address>
        <email>kll@dev.terastrm.net</email>
      </address>
    </author>
    <author fullname="Jan Lindblad">
      <organization>All For Eco</organization>
      <address>
        <email>jan.lindblad+ietf@for.eco</email>
      </address>
    </author>
    <date year="2026" month="September" day="17"/>
    <area>Operations and Management</area>
    <workgroup>NETCONF</workgroup>
    <keyword>telemetry</keyword>
    <keyword>distributed systems</keyword>
    <keyword>opentelemetry</keyword>
    <abstract>
      <?line 70?>

<t>This document defines an extension to the RESTCONF protocol 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 74?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Network automation and management systems commonly consist of multiple subsystems and, together with the network devices they manage, 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. These headers are useful for distributed systems such as those described in Section 4 of <xref target="RFC8309"/>. While the traceparent header is portable and mandatory, the tracestate header is optional and is used to carry vendor-specific data in a set of key/value pairs.</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 reuse 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>
      </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 MAY support the Trace Context tracestate header as defined in <xref target="W3C-Trace-Context"/>. Note that while the W3C Trace Context specification mandates that tracing tools forwarding traces MUST propagate both traceparent and tracestate headers (Section 2.3 of <xref target="W3C-Trace-Context"/>), RESTCONF servers may act as trace endpoints rather than forwarding intermediaries. Since the tracestate header carries vendor-specific opaque data, its support is intentionally made optional to accommodate implementations that do not require vendor-specific trace context propagation.</t>
      <t>When interacting with these headers, the RESTCONF server follows the specifications of section 2.3 in <xref target="W3C-Trace-Context"/>, therefore a RESTCONF server MAY also participate in a trace by modifying the traceparent header and the relevant vendor-specific parts of the tracestate header, for example when acting as an intermediary that contributes its own span to the distributed trace.</t>
      <section anchor="error-handling">
        <name>Error Handling</name>
        <t>It is NOT RECOMMENDED to reject an RPC because of Trace Context header values.</t>
        <t>If a server decides to reject an RPC because of 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 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.</t>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>The traceparent and tracestate headers make it easier to track and correlate the flow of requests and their downstream effects on other systems. This information may be used by unauthorized entities to infer a map of a managed network.</t>
      <t>All advice mentioned in <xref target="W3C-Trace-Context"/> under Privacy Considerations and Security Considerations also applies to this document.</t>
      <t>The RESTCONF protocol has to (1) use a secure transport layer (for example, TLS <xref target="RFC8446"/> and QUIC <xref target="RFC9000"/>) and (2) use mutual authentication.</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 Per Andersson. Many thanks to Raul Rivas Felix, Alexander Stoklasa, Luca Relandini, and Erwin Vrolijk for their help with the demo integrations. The help and support from Med Boucadair, Jean Quilbeuf, and Benoît Claise have 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="RFC9000">
          <front>
            <title>QUIC: A UDP-Based Multiplexed and Secure Transport</title>
            <author fullname="J. Iyengar" initials="J." role="editor" surname="Iyengar"/>
            <author fullname="M. Thomson" initials="M." role="editor" surname="Thomson"/>
            <date month="May" year="2021"/>
            <abstract>
              <t>This document defines the core of the QUIC transport protocol. QUIC provides applications with flow-controlled streams for structured communication, low-latency connection establishment, and network path migration. QUIC includes security measures that ensure confidentiality, integrity, and availability in a range of deployment circumstances. Accompanying documents describe the integration of TLS for key negotiation, loss detection, and an exemplary congestion control algorithm.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9000"/>
          <seriesInfo name="DOI" value="10.17487/RFC9000"/>
        </reference>
        <reference anchor="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="Christian Rennerskog" initials="C." surname="Rennerskog">
              <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>All For Eco</organization>
            </author>
            <date day="27" month="August" year="2026"/>
            <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-08"/>
        </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="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 134?>

<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 the processing rules SHOULD be followed.</t>
        <t>Example of a badly formatted tracestate header using the <xref target="RFC8040"/> example (Appendix B.2.1), in which a server receives a higher traceparent version 03:</t>
        <artwork><![CDATA[
  POST /restconf/data/example-jukebox:jukebox/library HTTP/1.1
  Host: example.com
  Content-Type: application/yang-data+json
  traceparent: 03-405062f633be64ee006089dfca95a153-e021f9e263aad8e2-01
  tracestate: SomeBadFormatHere

  {
    "example-jukebox:artist" : [
      {
        "name" : "Foo Fighters"
      }
    ]
  }
]]></artwork>
        <t>In this case, the server cannot parse the traceparent header and the response would be:</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-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-00
]]></artwork>
        <t>Note that the API call was successful, but the traceparent header is new with its trace-flags set to 0 and the tracestate header was removed.</t>
      </section>
    </section>
    <section anchor="changes-to-be-deleted-by-rfc-editor">
      <name>Changes (to be deleted by RFC Editor)</name>
      <section anchor="from-version-10-to-11">
        <name>From version 10 to 11</name>
        <ul spacing="normal">
          <li>
            <t>Grammar cleanups</t>
          </li>
        </ul>
      </section>
      <section anchor="from-version-09-to-10">
        <name>From version 09 to 10</name>
        <ul spacing="normal">
          <li>
            <t>Updated security considerations based on the Shepherd review.</t>
          </li>
          <li>
            <t>Added Christian Rennerskog as a co-author.</t>
          </li>
        </ul>
      </section>
      <section anchor="from-version-08-to-09">
        <name>From version 08 to 09</name>
        <ul spacing="normal">
          <li>
            <t>Explained MAY vs. W3C MUST for tracestate (OPSDir comment).</t>
          </li>
          <li>
            <t>Mentioned "participating in a trace" (modifying headers) (OPSDir comment).</t>
          </li>
          <li>
            <t>Fixed RFC 2119 boilerplate spacing to match the exact BCP 14 text.</t>
          </li>
          <li>
            <t>Updated the document date.</t>
          </li>
        </ul>
      </section>
      <section anchor="from-version-07-to-08">
        <name>From version 07 to 08</name>
        <ul spacing="normal">
          <li>
            <t>Improved the error-handling example to show the most common scenario based on the W3C standard.</t>
          </li>
          <li>
            <t>Updated the dates.</t>
          </li>
          <li>
            <t>Several edits based on OpsDir comments.</t>
          </li>
          <li>
            <t>Added security considerations for QUIC and mutual authentication.</t>
          </li>
        </ul>
      </section>
      <section anchor="from-version-06-to-07">
        <name>From version 06 to 07</name>
        <ul spacing="normal">
          <li>
            <t>More missing edits; updated dates.</t>
          </li>
        </ul>
      </section>
      <section anchor="from-version-05-to-06">
        <name>From version 05 to 06</name>
        <ul spacing="normal">
          <li>
            <t>More missing edits.</t>
          </li>
        </ul>
      </section>
      <section anchor="from-version-04-to-05">
        <name>From version 04 to 05</name>
        <ul spacing="normal">
          <li>
            <t>Removed unused references and terminology.</t>
          </li>
        </ul>
      </section>
      <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 the 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 the terminology.</t>
          </li>
          <li>
            <t>Error messages are SHOULD to align with W3C handling.</t>
          </li>
          <li>
            <t>Adapted the example to YANG module changes in the 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>Fixed an error in the error response.</t>
          </li>
          <li>
            <t>Comments from Med Boucadair.</t>
          </li>
          <li>
            <t>Removed markdown formatting of tracestate and traceparent, as the toolchain could not handle it properly.</t>
          </li>
          <li>
            <t>Removed references to RFC 8341 (NACM), as the passage in the security considerations no longer needed it.</t>
          </li>
          <li>
            <t>Rearranged the text in the introduction to include references in a more natural order.</t>
          </li>
          <li>
            <t>Removed several references to "we" and replaced them with more neutral language.</t>
          </li>
          <li>
            <t>Clarified that everything described as MUST requirements in this document applies only to RESTCONF implementations that support this document; other RESTCONF implementations do not need to care about it, as it is an optional extension.</t>
          </li>
          <li>
            <t>Clarified that the YANG modules used by this document are defined by the sibling NETCONF document.</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 Acknowledgments.</t>
          </li>
          <li>
            <t>Added several normative references.</t>
          </li>
          <li>
            <t>Added links to the latest document on GitHub.</t>
          </li>
          <li>
            <t>Added a 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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

-->

</rfc>
