<?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-rfc2629 version 1.2.13 -->
<?rfc toc="yes"?>
<?rfc sortrefs="yes"?>
<?rfc symrefs="yes"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-mboned-dorms-04" category="std" obsoletes="" updates="" submissionType="IETF" xml:lang="en" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.12.3 -->
  <front>
    <title abbrev="DORMS">Discovery Of Restconf Metadata for Source-specific multicast</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-mboned-dorms-04"/>
    <author initials="J." surname="Holland" fullname="Jake Holland">
      <organization>Akamai Technologies, Inc.</organization>
      <address>
        <postal>
          <street>150 Broadway</street>
          <city>Cambridge, MA 02144</city>
          <country>United States of America</country>
        </postal>
        <email>jakeholland.net@gmail.com</email>
      </address>
    </author>
    <date year="2022" month="March" day="07"/>
    <area>Ops</area>
    <workgroup>Mboned</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <t>This document defines DORMS (Discovery Of Restconf Metadata for Source-specific multicast), a method to discover and retrieve extensible metadata about source-specific multicast channels using RESTCONF.
The reverse IP DNS zone for a multicast sender's IP address is configured to use SRV resource records to advertise the hostname of a RESTCONF server that publishes metadata according to a new YANG module with support for extensions.
A new service name and the new YANG module are defined.</t>
    </abstract>
  </front>
  <middle>
    <section anchor="introduction" numbered="true" toc="default">
      <name>Introduction</name>
      <t>This document defines DORMS (Discovery Of Restconf Metadata for Source-specific multicast).</t>
      <t>A DORMS service is a RESTCONF <xref target="RFC8040" format="default"/> service that provides read access to data in the "ietf-dorms" YANG <xref target="RFC7950" format="default"/> model defined in <xref target="model" format="default"/>.
This model, along with optional extensions defined in other documents, provide an extensible set of information about multicast data streams.
A review of some example use cases that can be enabled by this kind of metadata is given in <xref target="motivation" format="default"/>.</t>
      <t>This document does not prohibit the use of the "ietf-dorms" model with other protocols such as NETCONF <xref target="RFC6241" format="default"/>, CORECONF <xref target="I-D.draft-ietf-core-comi" format="default"/>, or gNMI <xref target="I-D.draft-openconfig-rtgwg-gnmi-spec" format="default"/>, but the semantics of using the model over those protocols is out of scope for this document.
This document only defines the discovery and use of the "ietf-dorms" YANG model in RESTCONF.</t>
      <t>This document defines the "dorms" service name for use with the SRV DNS Resource Record (RR) type <xref target="RFC2782" format="default"/>.
A sender using a DORMS service to publish metadata SHOULD configure at least one SRV RR for the "_dorms._tcp" subdomain in the reverse IP DNS zone for the source IP used by some active multicast traffic.
The domain name in one of these SRV records provides a hostname corresponding to a DORMS server that can provide metadata for the sender's source-specific multicast traffic.
Publishing such a RR enables DORMS clients to discover and query a DORMS server as described in <xref target="disco" format="default"/>.</t>
      <section anchor="background" numbered="true" toc="default">
        <name>Background</name>
        <t>The reader is assumed to be familiar with the basic DNS concepts described in <xref target="RFC1034" format="default"/>, <xref target="RFC1035" format="default"/>, and the subsequent documents that update them, as well as the use of the SRV Resource Record type as described in <xref target="RFC2782" format="default"/>.</t>
        <t>The reader is also assumed to be familiar with the concepts and terminology regarding source-specific multicast as described in <xref target="RFC4607" format="default"/> and the use of IGMPv3 <xref target="RFC3376" format="default"/> and MLDv2 <xref target="RFC3810" format="default"/> for group management of source-specific multicast channels, as described in <xref target="RFC4604" format="default"/>.</t>
        <t>The reader is also assumed to be familiar with the concepts and terminology for RESTCONF <xref target="RFC8040" format="default"/> and YANG <xref target="RFC7950" format="default"/>.</t>
      </section>
      <section anchor="terminology" numbered="true" toc="default">
        <name>Terminology</name>
        <table align="center">
          <thead>
            <tr>
              <th align="right">Term</th>
              <th align="left">Definition</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="right">(S,G)</td>
              <td align="left">A source-specific multicast channel, as described in <xref target="RFC4607" format="default"/>. A pair of IP addresses with a source host IP and destination group IP.</td>
            </tr>
            <tr>
              <td align="right">DORMS client</td>
              <td align="left">An application or system that can communicate with DORMS servers to fetch metadata about (S,G)s.</td>
            </tr>
            <tr>
              <td align="right">DORMS server</td>
              <td align="left">A RESTCONF server that implements the ietf-dorms YANG model defined in this document.</td>
            </tr>
            <tr>
              <td align="right">RR</td>
              <td align="left">A DNS Resource Record, as described in <xref target="RFC1034" format="default"/></td>
            </tr>
            <tr>
              <td align="right">RRType</td>
              <td align="left">A DNS Resource Record Type, as described in <xref target="RFC1034" format="default"/></td>
            </tr>
            <tr>
              <td align="right">SSM</td>
              <td align="left">Source-specific multicast, as described in <xref target="RFC4607" format="default"/></td>
            </tr>
          </tbody>
        </table>
        <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 <xref target="RFC2119" format="default"/> and <xref target="RFC8174" format="default"/> when, and only when, they appear in all capitals, as shown here.</t>
      </section>
      <section anchor="motivation" numbered="true" toc="default">
        <name>Motivation and Use Cases</name>
        <t>DORMS provides a framework that can be extended to publish supplemental information about multicast traffic in a globally discoverable manner.
This supplemental information is sometimes needed by entities engaged in delivery or processing of the traffic to handle the traffic according to their requirements.</t>
        <t>Detailing the specifics of all known possible extensions is out of scope for this document except to note that a range of possible use cases are expected and they may be supported by a variety of different future extensions.
But a few example use cases are provided below for illustration.</t>
        <section anchor="provisioning-and-oversubscription-protection" numbered="true" toc="default">
          <name>Provisioning and Oversubscription Protection</name>
          <t>One use case for DORMS is when a network that is capable of forwarding multicast traffic may need to take provisioning actions or make admission control decisions based on the expected bitrate of the traffic in order to prevent oversubscription of constrained devices in the network.
<xref target="I-D.draft-ietf-mboned-cbacc" format="default"/> defines some DORMS extensions to support this use case.</t>
        </section>
        <section anchor="authentication" numbered="true" toc="default">
          <name>Authentication</name>
          <t>Another use case for DORMS is providing information for use in authenticating the multicast traffic before accepting it for forwarding by a network device, or for processing by a receiving application.
<xref target="I-D.draft-ietf-mboned-ambi" format="default"/> defines some DORMS extensions to support this use case.</t>
        </section>
        <section anchor="content-description" numbered="true" toc="default">
          <name>Content Description</name>
          <t>Another use case for DORMS is describing the contents carried by a multicast traffic channel.
The content description could include information about the protocols or applications that can be used to consume the traffic, or information about the media carried (e.g. information based on the Dublin Core Metadata Element Set <xref target="RFC5013" format="default"/>), or could make assertions about the legal status of the traffic within specific contexts.</t>
        </section>
      </section>
      <section anchor="channel-discovery" numbered="true" toc="default">
        <name>Channel Discovery</name>
        <t>DORMS provides a method for clients to fetch metadata about (S,G)s that are already known to the clients.
In general, a DORMS client might learn of an (S,G) by any means, so describing all possible methods a DORMS client might use to discover a set of (S,G)s for which it wants metadata is out of scope for this document.</t>
        <t>But for example, a multicast receiver application that is a DORMS client might learn about an (S,G) by getting signals from inside the application logic, such as a selection made by a user, or a scheduled API call that reacts to updates in a library provided by a service operator.</t>
        <t>As another example, an on-path router that's a DORMS client might instead learn about an (S,G) by receiving a PIM message or an IGMP or MLD membership report indicating a downstream client has tried to subscribe to an (S,G).
Such a router might use information learned from the DORMS metadata to make an access control decision about whether to propagate the join futher upstream in the network.</t>
        <t>Other approaches for learning relevant (S,G)s could be driven by monitoring a route reflector to discover channels that are being actively forwarded, for a purpose such as monitoring network health.</t>
      </section>
      <section anchor="notes-for-contributors-and-reviewers" numbered="true" toc="default">
        <name>Notes for Contributors and Reviewers</name>
        <t>Note to RFC Editor: Please remove this section and its subsections before publication.</t>
        <t>This section is to provide references to make it easier to review the development and discussion on the draft so far.</t>
        <section anchor="venue" numbered="true" toc="default">
          <name>Venues for Contribution and Discussion</name>
          <t>This document is in the Github repository at:</t>
          <t>https://github.com/GrumpyOldTroll/ietf-dorms-cluster</t>
          <t>Readers are welcome to open issues and send pull requests for this document.</t>
          <t>Please note that contributions may be merged and substantially edited, and as a reminder, please carefully consider the Note Well before contributing: https://datatracker.ietf.org/submit/note-well/</t>
          <t>Substantial discussion of this document should take place on the MBONED working group mailing list (mboned@ietf.org).</t>
          <ul spacing="normal">
            <li>Join: https://www.ietf.org/mailman/listinfo/mboned</li>
            <li>Search: https://mailarchive.ietf.org/arch/browse/mboned/</li>
          </ul>
        </section>
        <section anchor="non-obvious-doc-choices" numbered="true" toc="default">
          <name>Non-obvious doc choices</name>
          <t>Log of odd things that need to be the way they are because of some reason that the author or reviewers may want to know later.</t>
          <ul spacing="normal">
            <li>building the draft without this line produces a warning about no reference to <xref target="RFC6991" format="default"/> or <xref target="RFC8294" format="default"/>, but these are imported in the yang model. RFC 8407 requires the normative reference to 8294 (there's an exception for 6991 but I'm not sure why and it doesn't seem forbidden).</li>
            <li>Although it's non-normative, I chose the boundaries in the recommendation for default setting of DNS expiry time in <xref target="ignore" format="default"/> based on the best practices advice at https://www.varonis.com/blog/dns-ttl/ for "Short" and "Long" times.</li>
            <li>
              <xref target="yang-considerations" format="default"/> is intended to be the template from <eref target="https://trac.ietf.org/trac/ops/wiki/yang-security-guidelines">https://trac.ietf.org/trac/ops/wiki/yang-security-guidelines</eref>, as required by <eref target="https://datatracker.ietf.org/doc/html/rfc8407#section-3.7">https://datatracker.ietf.org/doc/html/rfc8407#section-3.7</eref>.  Individual nodes are not listed because blanket statements in that section covere them.</li>
            <li>The 'must' constraint in the group list seems awkward, but seems to work.  Its intent is to require source &amp; group to be either both IPv4 or both IPv6, without mixing &amp; matching.  It requires that either both the group address and its source parent's address must contain a colon or both must NOT contain a colon, where presence of a colon is used to distinguish IPv4 from IPv6.  Maybe there's a better way?</li>
          </ul>
        </section>
      </section>
    </section>
    <section anchor="disco" numbered="true" toc="default">
      <name>Discovery and Metdata Retrieval</name>
      <t>A client that needs metadata about an (S,G) MAY attempt to discover metadata for the (S,G) using the mechanisms defined here, and MAY use the metadata received to manage the forwarding or processing of the packets in the channel.</t>
      <section anchor="dns-boot" numbered="true" toc="default">
        <name>DNS Bootstrap</name>
        <t>The DNS Bootstrap step is how a client discovers an appropriate RESTCONF server, given the source address of an (S,G).
Use of the DNS Bootstrap is OPTIONAL for clients with an alternate method of obtaining a hostname of a trusted DORMS server that has information about a target (S,G).</t>
        <t>This mechanism only works for source-specific multicast (SSM) channels.
The source address of the (S,G) is reversed and used as an index into one of the reverse mapping trees (in-addr.arpa for IPv4, as described in Section 3.5 of <xref target="RFC1035" format="default"/>, or ip6.arpa for IPv6, as described in Section 2.5 of <xref target="RFC3596" format="default"/>).</t>
        <t>When a DORMS client needs metadata for an (S,G), for example when handling a new join for that (S,G) and looking up the authentication methods that are available, the DORMS client can issue a DNS query for a SRV RR using the "dorms" service name with the domain from the reverse mapping tree, combining them as described in <xref target="RFC2782" format="default"/>.</t>
        <t>For example, a client looking for metadata about the channel with a source IP of 2001:db8::a and the group address of ff3e::8000:d, the client would start the DNS bootstrap step by performing a query for the SRV RRType for the following domain (after removing the line break inserted for editorial reasons):</t>
        <artwork name="" type="" align="left" alt=""><![CDATA[
     _dorms._tcp.a.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.
                 0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa.
]]></artwork>
        <t>Or for an IPv4 (S,G) with a source address of 203.0.113.4, the DORMS client would request the SRV record from the in-addr.arpa tree instead:</t>
        <artwork name="" type="" align="left" alt=""><![CDATA[
     _dorms._tcp.4.113.0.203.in-addr.arpa.
]]></artwork>
        <t>In either case, the DNS response for this domain might return a record such as this:</t>
        <artwork name="" type="" align="left" alt=""><![CDATA[
     SRV 0 1 443 dorms-restconf.example.com.
]]></artwork>
        <t>This response informs the client that a DORMS server should be reachable at dorms-restconf.example.com on port 443, and should contain metadata about multicast traffic from the given source IP.
Multiple SRV records are handled as described by <xref target="RFC2782" format="default"/>.</t>
        <t>A sender providing DORMS discovery SHOULD publish at least one SRV record in the reverse DNS zone for each source address of the multicast channels it is sending in order to advertise the hostname of the DORMS server to DORMS clients.
The DORMS servers advertised SHOULD be configured with metadata for all the groups sent from the same source IP address that have metadata published with DORMS.</t>
        <t>When performing the SRV lookup, any CNAMEs or DNAMEs found MUST be followed.
This is necessary to support zone delegation.
Some examples outlining this need are described in <xref target="RFC2317" format="default"/>.</t>
      </section>
      <section anchor="ignore" numbered="true" toc="default">
        <name>Ignore List</name>
        <t>If a DORMS client reaches a DORMS server but determines through examination of responses from that DORMS server that it may not understand or be able to use the responses of the server (for example due to an issue like a version mismatch or modules that are missing but are required for the DORMS client's purposes), the client MAY add this server to an ignore list and reject servers in its ignore list during future discovery attempts.</t>
        <t>A client using the DNS Bootstrap discovery method in <xref target="dns-boot" format="default"/> would treat servers in its ignore list as unreachable for the purposes of processing the SRV RR as described in <xref target="RFC2782" format="default"/>.
(For example, a client might end up selecting a server with a less-preferred priority than servers in its ignore list, even if an HTTPS connection could have been formed successfully with some of those servers.)</t>
        <t>If an ignore list is maintained, entries SHOULD time out and allow for re-checking after either the cache expiration time from the DNS response that caused the server to be added to the ignore list, or for a configurable hold-down time that has a default value no shorter than 1 hour and no longer than 24 hours.</t>
      </section>
      <section anchor="restconf-bootstrap" numbered="true" toc="default">
        <name>RESTCONF Bootstrap</name>
        <t>Once a DORMS server has been chosen (whether via an SRV RR from a DNS response or via some other method), RESTCONF provides all the information necessary to determine the versions and url paths for metadata from the server.
A walkthrough is provided here for a sequence of example requests and responses from a receiver connecting to a new DORMS server.</t>
        <section anchor="root-resource-discovery" numbered="true" toc="default">
          <name>Root Resource Discovery</name>
          <t>As described in Section 3.1 of <xref target="RFC8040" format="default"/> and <xref target="RFC6415" format="default"/>, the RESTCONF server provides the link to the RESTCONF api entry point via the "/.well-known/host-meta" or "/.well-known/host-meta.json" resource.</t>
          <t>Example:</t>
          <t>The receiver might send:</t>
          <artwork name="" type="" align="left" alt=""><![CDATA[
     GET /.well-known/host-meta.json HTTP/1.1
     Host: dorms-restconf.example.com
     Accept: application/json
]]></artwork>
          <t>The server might respond as follows:</t>
          <artwork name="" type="" align="left" alt=""><![CDATA[
      HTTP/1.1 200 OK
      Date: Tue, 09 Jul 2021 20:56:00 GMT
      Server: example-server
      Cache-Control: no-cache
      Content-Type: application/json

      {
        "links":[
          {
            "rel":"restconf",
            "href":"/top/restconf"
          }
        ]
      }
]]></artwork>
        </section>
        <section anchor="yang-library-version" numbered="true" toc="default">
          <name>Yang Library Version</name>
          <t>As described in Section 3.3.3 of <xref target="RFC8040" format="default"/>, the yang-library-version leaf is required by RESTCONF, and can be used to determine the schema of the ietf-yang-library module:</t>
          <t>Example:</t>
          <t>The receiver might send:</t>
          <artwork name="" type="" align="left" alt=""><![CDATA[
      GET /top/restconf/yang-library-version HTTP/1.1
      Host: dorms-restconf.example.com
      Accept: application/yang-data+json
]]></artwork>
          <t>The server might respond as follows:</t>
          <artwork name="" type="" align="left" alt=""><![CDATA[
      HTTP/1.1 200 OK
      Date: Tue, 09 Jul 2021 20:56:01 GMT
      Server: example-server
      Cache-Control: no-cache
      Content-Type: application/yang-data+json

      {
          "ietf-restconf:yang-library-version": "2016-06-21"
      }
]]></artwork>
          <t>If a DORMS client determines through examination of the yang-library-version that it may not understand the responses of the server due to a version mismatch, the server qualifies as a candidate for adding to an ignore list as described in <xref target="ignore" format="default"/>.</t>
        </section>
        <section anchor="yang-library-contents" numbered="true" toc="default">
          <name>Yang Library Contents</name>
          <t>After checking that the version of the yang-library module will be understood by the receiver, the client can check that the desired metadata modules are available on the DORMS server by fetching the module-state resource from the ietf-yang-library module.</t>
          <t>Example:</t>
          <t>The receiver might send:</t>
          <artwork name="" type="" align="left" alt=""><![CDATA[
      GET /top/restconf/data/ietf-yang-library:modules-state/\
          module=ietf-dorms,2021-07-08
      Host: dorms-restconf.example.com
      Accept: application/yang-data+json
]]></artwork>
          <t>The server might respond as follows:</t>
          <artwork name="" type="" align="left" alt=""><![CDATA[
    HTTP/1.1 200 OK
    Date: Tue, 09 Jul 2021 20:56:02 GMT
    Server: example-server
    Cache-Control: no-cache
    Content-Type: application/yang-data+json

    {
      "ietf-yang-library:module": [
        {
          "conformance-type": "implement",
          "name": "ietf-dorms",
          "namespace": "urn:ietf:params:xml:ns:yang:ietf-dorms",
          "revision": "2021-07-08",
          "schema":
              "https://example.com/yang/ietf-dorms@2021-07-08.yang"
        }
      ]
    }
]]></artwork>
          <t>Other modules required or desired by the client also can be checked in a similar way, or the full set of available modules can be retrieved by not providing a key for the "module" list.
If a DORMS client that requires the presence of certain modules to perform its function discovers the required modules are not present on a server, that server qualifies for inclusion in an ignore list according to <xref target="ignore" format="default"/>.</t>
        </section>
        <section anchor="metadata-retrieval" numbered="true" toc="default">
          <name>Metadata Retrieval</name>
          <t>Once the expected DORMS version is confirmed, the client can retrieve the metadata specific to the desired (S,G).</t>
          <t>Example:</t>
          <t>The receiver might send:</t>
          <artwork name="" type="" align="left" alt=""><![CDATA[
      GET /top/restconf/data/ietf-dorms:dorms/metadata/\
          sender=2001:db8::a/group=ff3e::8000:1
      Host: dorms-restconf.example.com
      Accept: application/yang-data+json
]]></artwork>
          <t>The server might respond as follows:</t>
          <artwork name="" type="" align="left" alt=""><![CDATA[
      HTTP/1.1 200 OK
      Date: Tue, 09 Jul 2021 20:56:02 GMT
      Server: example-server
      Cache-Control: no-cache
      Content-Type: application/yang-data+json

      {
        "ietf-dorms:group": [
          {
            "group-address":"ff3e::8000:1",
            "udp-stream":[
              {
                "port":"5001"
              }
            ]
          }
        ]
      }
]]></artwork>
          <t>Note that when other modules are installed on the DORMS server that extend the ietf-dorms module, other fields MAY appear inside the response.
This is the primary mechanism for providing extensible metadata for an (S,G), so clients SHOULD ignore fields they do not understand.</t>
          <t>As mentioned in <xref target="scoping" format="default"/>, most clients SHOULD use data resource identifiers in the request URI as in the above example, in order to retrieve metadata for only the targeted (S,G)s.</t>
        </section>
        <section anchor="cors-considerations" numbered="true" toc="default">
          <name>Cross Origin Resource Sharing (CORS)</name>
          <t>It is RECOMMENDED that DORMS servers use the Access-Control-Allow-Origin header field, as specified by <xref target="whatwg-fetch" format="default"/>, and that they respond appropriately to Preflight requests.</t>
          <t>The use of '*' for allowed origins is NOT RECOMMENDED for publicly reachable DORMS servers.
A review of some of the potential consequences of unrestricted CORS access is given in <xref target="security-cors" format="default"/>.</t>
        </section>
      </section>
    </section>
    <section anchor="scalability-considerations" numbered="true" toc="default">
      <name>Scalability Considerations</name>
      <section anchor="provisioning" numbered="true" toc="default">
        <name>Provisioning</name>
        <t>In contrast to many common RESTCONF deployments that are intended to provide configuration management for a service to a narrow set of authenticated administrators, DORMS servers often provide read-only metadata for public access or for a very large set of end receivers, since it provides metadata in support of multicast data streams and multicast can scale to very large audiences.</t>
        <t>Operators are advised to provision the DORMS service in a way that will scale appropriately to the size of the expected audience.
Specific advice on such scaling is out of scope for this document, but some of the mechanisms outlined in <xref target="RFC3040" format="default"/> or other online resources might be useful, depending on the expected number of receivers.</t>
      </section>
      <section anchor="scoping" numbered="true" toc="default">
        <name>Data Scoping</name>
        <t>Except as outlined below, clients SHOULD issue narrowed requests for DORMS resources by following the format from Section 3.5.3 of <xref target="RFC8040" format="default"/> to encode data resource identifiers in the request URI.
This avoids downloading excessive data, since the DORMS server may provide metadata for many (S,G)s, possibly from many different senders.</t>
        <t>However, clients with out of band knowledge about the scope of the expected contents MAY issue requests for (S,G) metadata narrowed only by the source-address, or not narrowed at all.
Depending on the request patterns and the contents of the data store, this may result in fewer round trips or less overhead, and can therefore be helpful behavior for scaling purposes in some scenarios.
In general, engaging in this behavior requires some administrative configuration or some optimization heuristics that can recover from unexpected results.</t>
        <t>Servers MAY restrict or throttle client access based on the client certificate presented (if any), or based on heuristics that take note of client request patterns.</t>
        <t>A complete description of the heuristics for clients and servers to meet their scalability goals is out of scope for this document.</t>
      </section>
    </section>
    <section anchor="model" numbered="true" toc="default">
      <name>YANG Model</name>
      <t>The primary purpose of the YANG model defined here is to serve as a scaffold for the more useful metadata that will extend it.
See <xref target="motivation" format="default"/> for some example use cases that can be enabled by the use of DORMS extensions.</t>
      <section anchor="yang-tree" numbered="true" toc="default">
        <name>Yang Tree</name>
        <t>The tree diagram below follows the notation defined in <xref target="RFC8340" format="default"/>.</t>
        <figure>
          <name>DORMS Tree Diagram</name>
          <artwork name="" type="" align="left" alt=""><![CDATA[
module: ietf-dorms
  +--rw dorms
     +--rw metadata
        +--rw sender* [source-address]
           +--rw source-address    inet:ip-address
           +--rw group* [group-address]
              +--rw group-address
              |       rt-types:ip-multicast-group-address
              +--rw udp-stream* [port]
                 +--rw port    inet:port-number

]]></artwork>
        </figure>
      </section>
      <section anchor="yang-module" numbered="true" toc="default">
        <name>Yang Module</name>
        <sourcecode name="" type="" markers="true"><![CDATA[ file ietf-dorms@2022-03-07.yang
module ietf-dorms {
  yang-version 1.1;

  namespace "urn:ietf:params:xml:ns:yang:ietf-dorms";
  prefix "dorms";

  import ietf-inet-types {
    prefix "inet";
    reference "RFC 6991 Section 4";
  }

  import ietf-routing-types {
    prefix "rt-types";
    reference "RFC 8294";
  }

  organization "IETF MBONED (Multicast Backbone
      Deployment) Working Group";

  contact
      "Author:   Jake Holland
                 <mailto:jholland@akamai.com>
      ";

  description
  "Copyright (c) 2019 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 Simplified 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.

   This module contains the definition for the DORMS data type.
   It provides out of band metadata about SSM channels.";

  revision 2021-07-08 {
    description "Draft version, post-early-review.";
    reference
        "draft-ietf-mboned-dorms";
  }

  container dorms {
    description "Top-level DORMS container.";
    container metadata {
      description "Metadata scaffold for source-specific multicast
          channels.";
      list sender {
        key source-address;
        description "Sender for DORMS";

        leaf source-address {
          type inet:ip-address;
          mandatory true;
          description
              "The source IP address of a multicast sender.";
        }

        list group {
          key group-address;
          description "Metadata for a DORMS (S,G).";

          leaf group-address {
            type rt-types:ip-multicast-group-address;
            mandatory true;
            description "The group IP address for an (S,G).";
          }
          must '(re-match(./group-address, "[^:]*") and ' +
                're-match(../source-address, "[^:]*")) or ' +
               '(re-match(./group-address, ".*:.*") and ' +
                're-match(../source-address, ".*:.*"))' {
            error-message 'A group-address type must match '+
                          'its parent source-address type';
          }

          list udp-stream {
            key "port";
            description
                "Metadata for UDP traffic on a specific port.";
            leaf port {
              type inet:port-number;
              mandatory true;
              description
                  "The UDP port of a data stream.";
            }
          }
        }
      }
    }
  }
}
]]></sourcecode>
      </section>
    </section>
    <section anchor="privacy-considerations" numbered="true" toc="default">
      <name>Privacy Considerations</name>
      <section anchor="linking-content-to-traffic-streams" numbered="true" toc="default">
        <name>Linking Content to Traffic Streams</name>
        <t>In the typical case, the mechanisms defined in this document provide a standardized way to discover information that is already available in other ways.</t>
        <t>However, depending on the metadata provided by the server, observers may be able to more easily associate traffic from an (S,G) with the content contained within the (S,G).
At the subscriber edge of a multicast-capable network, where the network operator has the capability to localize an IGMP <xref target="RFC3376" format="default"/> or MLD <xref target="RFC3810" format="default"/> channel subscription to a specific user or location, for example by MAC address or source IP address, the structured publishing of metadata may make it easier to automate collection of data about the content a receiver is consuming.</t>
      </section>
      <section anchor="linking-multicast-subscribers-to-unicast-connections" numbered="true" toc="default">
        <name>Linking Multicast Subscribers to Unicast Connections</name>
        <t>Subscription to a multicast channel generally only exposes the IGMP or MLD membership report to others on the same LAN, and as the membership propagates through a multicast-capable network, it ordinarily gets aggregated with other end users.</t>
        <t>However, a RESTCONF connection is a unicast connection, and exposes a different set of information to the operator of the RESTCONF server, including IP address and timing about the requests made.
Where DORMS access becomes required to succeed a multicast join (for example, as expected in a browser deployment), this can expose new information about end users relative to services based solely on multicast streams.
The information disclosure occurs by giving the DORMS service operator information about the client's IP and the channels the client queried.</t>
        <t>In some deployments it may be possible to use a proxy that aggregates many end users when the aggregate privacy characteristics are needed by end users.</t>
      </section>
    </section>
    <section anchor="iana-considerations" numbered="true" toc="default">
      <name>IANA Considerations</name>
      <section anchor="the-yang-module-names-registry" numbered="true" toc="default">
        <name>The YANG Module Names Registry</name>
        <t>This document adds one YANG module to the "YANG Module Names" registry maintained at &lt;https://www.iana.org/assignments/yang-parameters&gt;.
The following registrations are made, per the format in Section 14 of <xref target="RFC6020" format="default"/>:</t>
        <artwork name="" type="" align="left" alt=""><![CDATA[
      name:      ietf-dorms
      namespace: urn:ietf:params:xml:ns:yang:ietf-dorms
      prefix:    dorms
      reference: I-D.draft-ietf-mboned-dorms
]]></artwork>
      </section>
      <section anchor="the-xml-registry" numbered="true" toc="default">
        <name>The XML Registry</name>
        <t>This document adds the following registration to the "ns" subregistry of the "IETF XML Registry" defined in <xref target="RFC3688" format="default"/>, referencing this document.</t>
        <artwork name="" type="" align="left" alt=""><![CDATA[
       URI: urn:ietf:params:xml:ns:yang:ietf-dorms
       Registrant Contact: The IESG.
       XML: N/A, the requested URI is an XML namespace.
]]></artwork>
      </section>
      <section anchor="the-service-name-and-transport-protocol-port-number-registry" numbered="true" toc="default">
        <name>The Service Name and Transport Protocol Port Number Registry</name>
        <t>This document adds one service name to the "Service Name and Transport Protocol Port Number Registry" maintained at &lt;https://www.iana.org/assignments/service-names-port-numbers&gt;.
The following registrations are made, per the format in Section 8.1.1 of <xref target="RFC6335" format="default"/>:</t>
        <artwork name="" type="" align="left" alt=""><![CDATA[
     Service Name:            dorms
     Transport Protocol(s):   TCP, UDP
     Assignee:                IESG <iesg@ietf.org>
     Contact:                 IETF Chair <chair@ietf.org>
     Description:             The DORMS service (RESTCONF that
                              includes ietf-dorms YANG model)
     Reference:               I-D.draft-ietf-mboned-dorms
     Port Number:             N/A
     Service Code:            N/A
     Known Unauthorized Uses: N/A
     Assignment Notes:        N/A
]]></artwork>
      </section>
    </section>
    <section anchor="security" numbered="true" toc="default">
      <name>Security Considerations</name>
      <section anchor="yang-considerations" numbered="true" toc="default">
        <name>YANG Model Considerations</name>
        <t>The YANG module specified in this document defines a schema for data that is designed to be accessed via RESTCONF <xref target="RFC8040" format="default"/>.
The lowest RESTCONF layer is HTTPS, and the mandatory-to-implement secure transport is TLS <xref target="RFC8446" format="default"/>.</t>
        <t>There are a number of data nodes defined in this YANG module that are writable/creatable/deletable (i.e., config true, which is the default). These data nodes may be considered sensitive or vulnerable in some network environments. Write operations (e.g., edit-config) to these data nodes without proper protection can have a negative effect on network operations. These are the subtrees and data nodes and their sensitivity/vulnerability:</t>
        <t>Subtrees:</t>
        <ul spacing="normal">
          <li>/dorms/metadata</li>
          <li>/dorms/metadata/sender</li>
          <li>/dorms/metadata/sender/group</li>
          <li>/dorms/metadata/sender/group/udp-stream</li>
        </ul>
        <t>Data nodes:</t>
        <ul spacing="normal">
          <li>/dorms/metadata/sender/source-address</li>
          <li>/dorms/metadata/sender/group/group-address</li>
          <li>/dorms/metadata/sender/group/udp-stream/port</li>
        </ul>
        <t>These data nodes refer to the characteristics of a stream of data packets being sent on a multicast channel.
If an unauthorized or incorrect edit is made, receivers would no longer be able to associate the data stream to the correct metadata, resulting in a denial of service for end users that rely on the metadata to properly process the data packets.
Therefore DORMS servers MUST constrain write access to ensure that unauthorized users cannot edit the data published by the server.</t>
        <t>The Network Configuration Access Control Model (NACM) <xref target="RFC8341" format="default"/> provides the means to restrict access for particular NETCONF or RESTCONF users to a preconfigured subset of all available NETCONF or RESTCONF protocol operations and content.
DORMS servers MAY use NACM to constrain write accesses.</t>
        <t>However, note that scalability considerations described in <xref target="provisioning" format="default"/> might make the naive use of NACM intractable in many deployments, for a broadcast use case.
So alternative methods to constrain write access to the metadata MAY be used instead of or in addition to NACM.
For example, some deployments that use a CDN or caching layer of discoverable DORMS servers might uniformly provide read-only access through the caching layer, and might require the trusted writers of configuration to use an alternate method of accessing the underlying database such as connecting directly to the origin, or requiring the use of a non-RESTCONF mechanism for editing the contents of the metadata.</t>
        <t>The data nodes defined in this YANG module are writable because some deployments might manage the contents in the database by using normal RESTCONF editing operations with NACM, but in typical deployments it's expected that DORMS clients will generally have read-only access.
For the reasons and requirements described in <xref target="exposure" format="default"/>, none of the data nodes in the DORMS module or its extensions contain sensitive data.</t>
        <t>DORMS servers MAY provide read-only access to clients for publicly available metadata without authenticating the clients.
That is, under the terms in Section 2.5 of <xref target="RFC8040" format="default"/> read-only access to publicly available data MAY be treated as unprotected resources.</t>
      </section>
      <section anchor="exposure" numbered="true" toc="default">
        <name>Exposure of Metadata</name>
        <t>Although some DORMS servers MAY restrict access based on client identity, as described in Section 2.5 of <xref target="RFC8040" format="default"/>, many DORMS servers will use the ietf-dorms YANG model to publish information without restriction, and even DORMS servers requiring client authentication will inherently, because of the purpose of DORMS, be providing the DORMS metadata to potentially many receivers.</t>
        <t>Accordingly, future YANG modules that augment data paths under "ietf-dorms:dorms" MUST NOT include any sensitive data unsuitable for public dissemination in those data paths.</t>
        <t>Because of the possibility that scalable read-only access might be necessary to fulfill the scalability goals for a DORMS server, data under these paths MAY be cached or replicated by numerous external entities, so owners of such data SHOULD NOT assume such data can be kept secret when provided by DORMS servers anywhere under the "ietf-dorms:dorms" path even if access controls are used with authenticated clients unless additional operational procedures and restrictions are defined and implemented that can effectively control the dissemination of the secret data.
DORMS alone does not provide any such mechanisms, and users of DORMS can be expected not to be following any such mechanisms in the absence of additional assurances.</t>
      </section>
      <section anchor="secure-communications" numbered="true" toc="default">
        <name>Secure Communications</name>
        <t>The provisions of Section 2 of <xref target="RFC8040" format="default"/> provide secure communication requirements that are already required of DORMS servers, since they are RESTCONF servers.
All RESTCONF requirements and security considerations remain in force for DORMS servers.</t>
        <t>It is intended that security related metadata about the SSM channels such as public keys for use with cryptographic algorithms may be delivered over the RESTCONF connection, and that information available from this connection can be used as a trust anchor.
The secure transport provided by these minimum requirements are relied upon to provide authenticated delivery of these trust anchors, once a connection with a trusted DORMS server has been established.</t>
      </section>
      <section anchor="record-spoofing" numbered="true" toc="default">
        <name>Record-Spoofing</name>
        <t>When using the DNS Boostrap method of discovery described in <xref target="dns-boot" format="default"/>, the SRV resource record contains information that SHOULD be communicated to the DORMS client without being modified.  The method used to ensure the result was unmodified is up to the client.</t>
        <t>There must be a trust relationship between the end consumer of this resource record and the DNS server.
This relationship may be end-to-end DNSSEC validation or a secure connection to a trusted DNS server that provides end-to-end safety to prevent record-spoofing of the response from the trusted server.
The connection to the trusted server can use any secure channel, such as with a TSIG <xref target="RFC8945" format="default"/> or SIG(0) <xref target="RFC2931" format="default"/> channel, a secure local channel on the host, DNS over TLS <xref target="RFC7858" format="default"/>, DNS over HTTPS <xref target="RFC8484" format="default"/>, or some other mechanism that provides authentication of the RR.</t>
        <t>If a DORMS client accepts a maliciously crafted SRV record, the client could connect to a server controlled by the attacker, and use metadata provided by them.  The consequences of trusting maliciously crafted metadata could range from attacks against the DORMS client's parser of the metadata (via malicious constructions of the formatting of the data) to arbitrary disruption of the decisions the DORMS client makes as a result of processing validly constructed metadata.</t>
        <t>Clients MAY use other secure methods to explicitly associate an (S,G) with a set of DORMS server hostnames, such as a configured mapping or an alternative trusted lookup service.</t>
      </section>
      <section anchor="security-cors" numbered="true" toc="default">
        <name>CORS considerations</name>
        <t>As described in <xref target="cors-considerations" format="default"/>, it's RECOMMENDED that DORMS servers provide appropriate restrictions to ensure only authorized web pages access metadata for their (S,G)s from the widely deployed base of secure browsers that use the CORS protocol according to <xref target="whatwg-fetch" format="default"/>.</t>
        <t>Providing '*' for the allowed origins exposes the DORMS-based metadata to access by scripts in all web pages, which opens the possibility of certain kinds of attacks against networks where browsers have support for joining multicast (S,G)s.</t>
        <t>If the authentication for an (S,G) relies on DORMS-based metadata (for example, as defined in <xref target="I-D.draft-ietf-mboned-ambi" format="default"/>), an unauthorized web page that tries to join an (S,G) not permitted by the CORS headers for the DORMS server will be prevented from subscribing to the channels.</t>
        <t>If an unauthorized site is not prevented from subscribing, code on the site (for example a malicious advertisement) could request subscriptions from many different (S,G)s, overflowing limits on the joining of (S,G)s and disrupting the delivery of multicast traffic for legitimate use.</t>
        <t>Further, if the malicious script can be distributed to many different users within the same receiving network, the script could coordinate an attack against the network as a whole by joining disjoint sets of (S,G)s from different users within the receiving network.
The distributed subscription requests across the receiving network could overflow limits for the receiving network as a whole, essentially causing the websites displaying the ad to participate in an overjoining attack (see Appendix A of <xref target="I-D.draft-ietf-mboned-cbacc" format="default"/>).</t>
        <t>Even if network safety mechanisms protect the network from the worst effects of oversubscription, the population counts for the multicast subscriptions could be disrupted by this kind of attack, and therefore push out legitimately requested traffic that's being consumed by real users.
For a legitimately popular event, this could cause a widespread disruption to the service if it's successfully pushed out.</t>
        <t>A denial of service attack of this sort would be thwarted by restricting the access to (S,G)s to authorized websites through the use of properly restricted CORS headers.</t>
      </section>
    </section>
    <section anchor="acknowledgements" numbered="true" toc="default">
      <name>Acknowledgements</name>
      <t>Thanks to Christian Worm Mortensen, Dino Farinacci, Lenny Guiliano, and Reshad Rahman for their very helpful comments and reviews.</t>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author initials="S." surname="Bradner" fullname="S. Bradner">
              <organization/>
            </author>
            <date year="1997" month="March"/>
            <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="RFC2317" target="https://www.rfc-editor.org/info/rfc2317">
          <front>
            <title>Classless IN-ADDR.ARPA delegation</title>
            <author initials="H." surname="Eidnes" fullname="H. Eidnes">
              <organization/>
            </author>
            <author initials="G." surname="de Groot" fullname="G. de Groot">
              <organization/>
            </author>
            <author initials="P." surname="Vixie" fullname="P. Vixie">
              <organization/>
            </author>
            <date year="1998" month="March"/>
            <abstract>
              <t>This document describes a way to do IN-ADDR.ARPA delegation on non-octet boundaries for address spaces covering fewer than 256 addresses.  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="20"/>
          <seriesInfo name="RFC" value="2317"/>
          <seriesInfo name="DOI" value="10.17487/RFC2317"/>
        </reference>
        <reference anchor="RFC2782" target="https://www.rfc-editor.org/info/rfc2782">
          <front>
            <title>A DNS RR for specifying the location of services (DNS SRV)</title>
            <author initials="A." surname="Gulbrandsen" fullname="A. Gulbrandsen">
              <organization/>
            </author>
            <author initials="P." surname="Vixie" fullname="P. Vixie">
              <organization/>
            </author>
            <author initials="L." surname="Esibov" fullname="L. Esibov">
              <organization/>
            </author>
            <date year="2000" month="February"/>
            <abstract>
              <t>This document describes a DNS RR which specifies the location of the server(s) for a specific protocol and domain.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2782"/>
          <seriesInfo name="DOI" value="10.17487/RFC2782"/>
        </reference>
        <reference anchor="RFC3596" target="https://www.rfc-editor.org/info/rfc3596">
          <front>
            <title>DNS Extensions to Support IP Version 6</title>
            <author initials="S." surname="Thomson" fullname="S. Thomson">
              <organization/>
            </author>
            <author initials="C." surname="Huitema" fullname="C. Huitema">
              <organization/>
            </author>
            <author initials="V." surname="Ksinant" fullname="V. Ksinant">
              <organization/>
            </author>
            <author initials="M." surname="Souissi" fullname="M. Souissi">
              <organization/>
            </author>
            <date year="2003" month="October"/>
            <abstract>
              <t>This document defines the changes that need to be made to the Domain Name System (DNS) to support hosts running IP version 6 (IPv6).  The changes include a resource record type to store an IPv6 address, a domain to support lookups based on an IPv6 address, and updated definitions of existing query types that return Internet addresses as part of additional section processing.  The extensions are designed to be compatible with existing applications and, in particular, DNS implementations themselves.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="88"/>
          <seriesInfo name="RFC" value="3596"/>
          <seriesInfo name="DOI" value="10.17487/RFC3596"/>
        </reference>
        <reference anchor="RFC6241" target="https://www.rfc-editor.org/info/rfc6241">
          <front>
            <title>Network Configuration Protocol (NETCONF)</title>
            <author initials="R." surname="Enns" fullname="R. Enns" role="editor">
              <organization/>
            </author>
            <author initials="M." surname="Bjorklund" fullname="M. Bjorklund" role="editor">
              <organization/>
            </author>
            <author initials="J." surname="Schoenwaelder" fullname="J. Schoenwaelder" role="editor">
              <organization/>
            </author>
            <author initials="A." surname="Bierman" fullname="A. Bierman" role="editor">
              <organization/>
            </author>
            <date year="2011" month="June"/>
            <abstract>
              <t>The Network Configuration Protocol (NETCONF) defined in this document provides mechanisms to install, manipulate, and delete the configuration of network devices.  It uses an Extensible Markup Language (XML)-based data encoding for the configuration data as well as the protocol messages.  The NETCONF protocol operations are realized as remote procedure calls (RPCs).  This document obsoletes RFC 4741.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6241"/>
          <seriesInfo name="DOI" value="10.17487/RFC6241"/>
        </reference>
        <reference anchor="RFC6991" target="https://www.rfc-editor.org/info/rfc6991">
          <front>
            <title>Common YANG Data Types</title>
            <author initials="J." surname="Schoenwaelder" fullname="J. Schoenwaelder" role="editor">
              <organization/>
            </author>
            <date year="2013" month="July"/>
            <abstract>
              <t>This document introduces a collection of common data types to be used with the YANG data modeling language.  This document obsoletes RFC 6021.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6991"/>
          <seriesInfo name="DOI" value="10.17487/RFC6991"/>
        </reference>
        <reference anchor="RFC7950" target="https://www.rfc-editor.org/info/rfc7950">
          <front>
            <title>The YANG 1.1 Data Modeling Language</title>
            <author initials="M." surname="Bjorklund" fullname="M. Bjorklund" role="editor">
              <organization/>
            </author>
            <date year="2016" month="August"/>
            <abstract>
              <t>YANG is a data modeling language used to model configuration data, state data, Remote Procedure Calls, and notifications for network management protocols.  This document describes the syntax and semantics of version 1.1 of the YANG language.  YANG version 1.1 is a maintenance release of the YANG language, addressing ambiguities and defects in the original specification.  There are a small number of backward incompatibilities from YANG version 1.  This document also specifies the YANG mappings to the Network Configuration Protocol (NETCONF).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7950"/>
          <seriesInfo name="DOI" value="10.17487/RFC7950"/>
        </reference>
        <reference anchor="RFC8040" target="https://www.rfc-editor.org/info/rfc8040">
          <front>
            <title>RESTCONF Protocol</title>
            <author initials="A." surname="Bierman" fullname="A. Bierman">
              <organization/>
            </author>
            <author initials="M." surname="Bjorklund" fullname="M. Bjorklund">
              <organization/>
            </author>
            <author initials="K." surname="Watsen" fullname="K. Watsen">
              <organization/>
            </author>
            <date year="2017" month="January"/>
            <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" target="https://www.rfc-editor.org/info/rfc8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author initials="B." surname="Leiba" fullname="B. Leiba">
              <organization/>
            </author>
            <date year="2017" month="May"/>
            <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="RFC8294" target="https://www.rfc-editor.org/info/rfc8294">
          <front>
            <title>Common YANG Data Types for the Routing Area</title>
            <author initials="X." surname="Liu" fullname="X. Liu">
              <organization/>
            </author>
            <author initials="Y." surname="Qu" fullname="Y. Qu">
              <organization/>
            </author>
            <author initials="A." surname="Lindem" fullname="A. Lindem">
              <organization/>
            </author>
            <author initials="C." surname="Hopps" fullname="C. Hopps">
              <organization/>
            </author>
            <author initials="L." surname="Berger" fullname="L. Berger">
              <organization/>
            </author>
            <date year="2017" month="December"/>
            <abstract>
              <t>This document defines a collection of common data types using the YANG data modeling language.  These derived common types are designed to be imported by other modules defined in the routing area.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8294"/>
          <seriesInfo name="DOI" value="10.17487/RFC8294"/>
        </reference>
        <reference anchor="RFC8340" target="https://www.rfc-editor.org/info/rfc8340">
          <front>
            <title>YANG Tree Diagrams</title>
            <author initials="M." surname="Bjorklund" fullname="M. Bjorklund">
              <organization/>
            </author>
            <author initials="L." surname="Berger" fullname="L. Berger" role="editor">
              <organization/>
            </author>
            <date year="2018" month="March"/>
            <abstract>
              <t>This document captures the current syntax used in YANG module tree diagrams.  The purpose of this document is to provide a single location for this definition.  This syntax may be updated from time to time based on the evolution of the YANG language.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="215"/>
          <seriesInfo name="RFC" value="8340"/>
          <seriesInfo name="DOI" value="10.17487/RFC8340"/>
        </reference>
        <reference anchor="RFC8341" target="https://www.rfc-editor.org/info/rfc8341">
          <front>
            <title>Network Configuration Access Control Model</title>
            <author initials="A." surname="Bierman" fullname="A. Bierman">
              <organization/>
            </author>
            <author initials="M." surname="Bjorklund" fullname="M. Bjorklund">
              <organization/>
            </author>
            <date year="2018" month="March"/>
            <abstract>
              <t>The standardization of network configuration interfaces for use with the Network Configuration Protocol (NETCONF) or the RESTCONF protocol requires a structured and secure operating environment that promotes human usability and multi-vendor interoperability.  There is a need for standard mechanisms to restrict NETCONF or RESTCONF protocol access for particular users to a preconfigured subset of all available NETCONF or RESTCONF protocol operations and content.  This document defines such an access control model.</t>
              <t>This document obsoletes RFC 6536.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="91"/>
          <seriesInfo name="RFC" value="8341"/>
          <seriesInfo name="DOI" value="10.17487/RFC8341"/>
        </reference>
        <reference anchor="RFC8446" target="https://www.rfc-editor.org/info/rfc8446">
          <front>
            <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
            <author initials="E." surname="Rescorla" fullname="E. Rescorla">
              <organization/>
            </author>
            <date year="2018" month="August"/>
            <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="whatwg-fetch" target="https://fetch.spec.whatwg.org/">
          <front>
            <title>WHATWG Fetch Living Standard</title>
            <author>
              <organization/>
            </author>
            <date year="2020" month="October"/>
          </front>
        </reference>
      </references>
      <references>
        <name>Informative References</name>
        <reference anchor="RFC1034" target="https://www.rfc-editor.org/info/rfc1034">
          <front>
            <title>Domain names - concepts and facilities</title>
            <author initials="P.V." surname="Mockapetris" fullname="P.V. Mockapetris">
              <organization/>
            </author>
            <date year="1987" month="November"/>
            <abstract>
              <t>This RFC is the revised basic definition of The Domain Name System.  It obsoletes RFC-882.  This memo describes the domain style names and their used for host address look up and electronic mail forwarding.  It discusses the clients and servers in the domain name system and the protocol used between them.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="13"/>
          <seriesInfo name="RFC" value="1034"/>
          <seriesInfo name="DOI" value="10.17487/RFC1034"/>
        </reference>
        <reference anchor="RFC1035" target="https://www.rfc-editor.org/info/rfc1035">
          <front>
            <title>Domain names - implementation and specification</title>
            <author initials="P.V." surname="Mockapetris" fullname="P.V. Mockapetris">
              <organization/>
            </author>
            <date year="1987" month="November"/>
            <abstract>
              <t>This RFC is the revised specification of the protocol and format used in the implementation of the Domain Name System.  It obsoletes RFC-883. This memo documents the details of the domain name client - server communication.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="13"/>
          <seriesInfo name="RFC" value="1035"/>
          <seriesInfo name="DOI" value="10.17487/RFC1035"/>
        </reference>
        <reference anchor="RFC2931" target="https://www.rfc-editor.org/info/rfc2931">
          <front>
            <title>DNS Request and Transaction Signatures ( SIG(0)s )</title>
            <author initials="D." surname="Eastlake 3rd" fullname="D. Eastlake 3rd">
              <organization/>
            </author>
            <date year="2000" month="September"/>
            <abstract>
              <t>This document describes the minor but non-interoperable changes in Request and Transaction signature resource records ( SIG(0)s ) that implementation experience has deemed necessary.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2931"/>
          <seriesInfo name="DOI" value="10.17487/RFC2931"/>
        </reference>
        <reference anchor="RFC3040" target="https://www.rfc-editor.org/info/rfc3040">
          <front>
            <title>Internet Web Replication and Caching Taxonomy</title>
            <author initials="I." surname="Cooper" fullname="I. Cooper">
              <organization/>
            </author>
            <author initials="I." surname="Melve" fullname="I. Melve">
              <organization/>
            </author>
            <author initials="G." surname="Tomlinson" fullname="G. Tomlinson">
              <organization/>
            </author>
            <date year="2001" month="January"/>
            <abstract>
              <t>This memo specifies standard terminology and the taxonomy of web replication and caching infrastructure as deployed today.  It introduces standard concepts, and protocols used today within this application domain.  This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3040"/>
          <seriesInfo name="DOI" value="10.17487/RFC3040"/>
        </reference>
        <reference anchor="RFC3376" target="https://www.rfc-editor.org/info/rfc3376">
          <front>
            <title>Internet Group Management Protocol, Version 3</title>
            <author initials="B." surname="Cain" fullname="B. Cain">
              <organization/>
            </author>
            <author initials="S." surname="Deering" fullname="S. Deering">
              <organization/>
            </author>
            <author initials="I." surname="Kouvelas" fullname="I. Kouvelas">
              <organization/>
            </author>
            <author initials="B." surname="Fenner" fullname="B. Fenner">
              <organization/>
            </author>
            <author initials="A." surname="Thyagarajan" fullname="A. Thyagarajan">
              <organization/>
            </author>
            <date year="2002" month="October"/>
          </front>
          <seriesInfo name="RFC" value="3376"/>
          <seriesInfo name="DOI" value="10.17487/RFC3376"/>
        </reference>
        <reference anchor="RFC3688" target="https://www.rfc-editor.org/info/rfc3688">
          <front>
            <title>The IETF XML Registry</title>
            <author initials="M." surname="Mealling" fullname="M. Mealling">
              <organization/>
            </author>
            <date year="2004" month="January"/>
            <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="RFC3810" target="https://www.rfc-editor.org/info/rfc3810">
          <front>
            <title>Multicast Listener Discovery Version 2 (MLDv2) for IPv6</title>
            <author initials="R." surname="Vida" fullname="R. Vida" role="editor">
              <organization/>
            </author>
            <author initials="L." surname="Costa" fullname="L. Costa" role="editor">
              <organization/>
            </author>
            <date year="2004" month="June"/>
            <abstract>
              <t>This document updates RFC 2710, and it specifies Version 2 of the ulticast Listener Discovery Protocol (MLDv2).  MLD is used by an IPv6 router to discover the presence of multicast listeners on directly attached links, and to discover which multicast addresses are of interest to those neighboring nodes.  MLDv2 is designed to be interoperable with MLDv1.  MLDv2 adds the ability for a node to report interest in listening to packets with a particular multicast address only from specific source addresses or from all sources except for specific source addresses.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3810"/>
          <seriesInfo name="DOI" value="10.17487/RFC3810"/>
        </reference>
        <reference anchor="RFC4604" target="https://www.rfc-editor.org/info/rfc4604">
          <front>
            <title>Using Internet Group Management Protocol Version 3 (IGMPv3) and Multicast Listener Discovery Protocol Version 2 (MLDv2) for Source-Specific Multicast</title>
            <author initials="H." surname="Holbrook" fullname="H. Holbrook">
              <organization/>
            </author>
            <author initials="B." surname="Cain" fullname="B. Cain">
              <organization/>
            </author>
            <author initials="B." surname="Haberman" fullname="B. Haberman">
              <organization/>
            </author>
            <date year="2006" month="August"/>
            <abstract>
              <t>The Internet Group Management Protocol Version 3 (IGMPv3) and the Multicast Listener Discovery Protocol Version 2 (MLDv2) are protocols that allow a host to inform its neighboring routers of its desire to receive IPv4 and IPv6 multicast transmissions, respectively. Source-specific multicast (SSM) is a form of multicast in which a receiver is required to specify both the network-layer address of the source and the multicast destination address in order to receive the multicast transmission.  This document defines the notion of an "SSM-aware" router and host, and clarifies and (in some cases) modifies the behavior of IGMPv3 and MLDv2 on SSM-aware routers and hosts to accommodate source-specific multicast.  This document updates the IGMPv3 and MLDv2 specifications.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4604"/>
          <seriesInfo name="DOI" value="10.17487/RFC4604"/>
        </reference>
        <reference anchor="RFC4607" target="https://www.rfc-editor.org/info/rfc4607">
          <front>
            <title>Source-Specific Multicast for IP</title>
            <author initials="H." surname="Holbrook" fullname="H. Holbrook">
              <organization/>
            </author>
            <author initials="B." surname="Cain" fullname="B. Cain">
              <organization/>
            </author>
            <date year="2006" month="August"/>
            <abstract>
              <t>IP version 4 (IPv4) addresses in the 232/8 (232.0.0.0 to 232.255.255.255) range are designated as source-specific multicast (SSM) destination addresses and are reserved for use by source-specific applications and protocols.  For IP version 6 (IPv6), the address prefix FF3x::/32 is reserved for source-specific multicast use.  This document defines an extension to the Internet network service that applies to datagrams sent to SSM addresses and defines the host and router requirements to support this extension.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4607"/>
          <seriesInfo name="DOI" value="10.17487/RFC4607"/>
        </reference>
        <reference anchor="RFC5013" target="https://www.rfc-editor.org/info/rfc5013">
          <front>
            <title>The Dublin Core Metadata Element Set</title>
            <author initials="J." surname="Kunze" fullname="J. Kunze">
              <organization/>
            </author>
            <author initials="T." surname="Baker" fullname="T. Baker">
              <organization/>
            </author>
            <date year="2007" month="August"/>
            <abstract>
              <t>This document defines fifteen metadata elements for resource description in a cross-disciplinary information environment.  This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5013"/>
          <seriesInfo name="DOI" value="10.17487/RFC5013"/>
        </reference>
        <reference anchor="RFC6020" target="https://www.rfc-editor.org/info/rfc6020">
          <front>
            <title>YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)</title>
            <author initials="M." surname="Bjorklund" fullname="M. Bjorklund" role="editor">
              <organization/>
            </author>
            <date year="2010" month="October"/>
            <abstract>
              <t>YANG is a data modeling language used to model configuration and state data manipulated by the Network Configuration Protocol (NETCONF), NETCONF remote procedure calls, and NETCONF notifications. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6020"/>
          <seriesInfo name="DOI" value="10.17487/RFC6020"/>
        </reference>
        <reference anchor="RFC6335" target="https://www.rfc-editor.org/info/rfc6335">
          <front>
            <title>Internet Assigned Numbers Authority (IANA) Procedures for the Management of the Service Name and Transport Protocol Port Number Registry</title>
            <author initials="M." surname="Cotton" fullname="M. Cotton">
              <organization/>
            </author>
            <author initials="L." surname="Eggert" fullname="L. Eggert">
              <organization/>
            </author>
            <author initials="J." surname="Touch" fullname="J. Touch">
              <organization/>
            </author>
            <author initials="M." surname="Westerlund" fullname="M. Westerlund">
              <organization/>
            </author>
            <author initials="S." surname="Cheshire" fullname="S. Cheshire">
              <organization/>
            </author>
            <date year="2011" month="August"/>
            <abstract>
              <t>This document defines the procedures that the Internet Assigned Numbers Authority (IANA) uses when handling assignment and other requests related to the Service Name and Transport Protocol Port Number registry.  It also discusses the rationale and principles behind these procedures and how they facilitate the long-term sustainability of the registry.</t>
              <t>This document updates IANA's procedures by obsoleting the previous UDP and TCP port assignment procedures defined in Sections 8 and 9.1 of the IANA Allocation Guidelines, and it updates the IANA service name and port assignment procedures for UDP-Lite, the Datagram Congestion Control Protocol (DCCP), and the Stream Control Transmission Protocol (SCTP).  It also updates the DNS SRV specification to clarify what a service name is and how it is registered.  This memo documents an Internet Best Current Practice.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="165"/>
          <seriesInfo name="RFC" value="6335"/>
          <seriesInfo name="DOI" value="10.17487/RFC6335"/>
        </reference>
        <reference anchor="RFC6415" target="https://www.rfc-editor.org/info/rfc6415">
          <front>
            <title>Web Host Metadata</title>
            <author initials="E." surname="Hammer-Lahav" fullname="E. Hammer-Lahav" role="editor">
              <organization/>
            </author>
            <author initials="B." surname="Cook" fullname="B. Cook">
              <organization/>
            </author>
            <date year="2011" month="October"/>
            <abstract>
              <t>This specification describes a method for locating host metadata as well as information about individual resources controlled by the host.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6415"/>
          <seriesInfo name="DOI" value="10.17487/RFC6415"/>
        </reference>
        <reference anchor="RFC7858" target="https://www.rfc-editor.org/info/rfc7858">
          <front>
            <title>Specification for DNS over Transport Layer Security (TLS)</title>
            <author initials="Z." surname="Hu" fullname="Z. Hu">
              <organization/>
            </author>
            <author initials="L." surname="Zhu" fullname="L. Zhu">
              <organization/>
            </author>
            <author initials="J." surname="Heidemann" fullname="J. Heidemann">
              <organization/>
            </author>
            <author initials="A." surname="Mankin" fullname="A. Mankin">
              <organization/>
            </author>
            <author initials="D." surname="Wessels" fullname="D. Wessels">
              <organization/>
            </author>
            <author initials="P." surname="Hoffman" fullname="P. Hoffman">
              <organization/>
            </author>
            <date year="2016" month="May"/>
            <abstract>
              <t>This document describes the use of Transport Layer Security (TLS) to provide privacy for DNS.  Encryption provided by TLS eliminates opportunities for eavesdropping and on-path tampering with DNS queries in the network, such as discussed in RFC 7626.  In addition, this document specifies two usage profiles for DNS over TLS and provides advice on performance considerations to minimize overhead from using TCP and TLS with DNS.</t>
              <t>This document focuses on securing stub-to-recursive traffic, as per the charter of the DPRIVE Working Group.  It does not prevent future applications of the protocol to recursive-to-authoritative traffic.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7858"/>
          <seriesInfo name="DOI" value="10.17487/RFC7858"/>
        </reference>
        <reference anchor="RFC8484" target="https://www.rfc-editor.org/info/rfc8484">
          <front>
            <title>DNS Queries over HTTPS (DoH)</title>
            <author initials="P." surname="Hoffman" fullname="P. Hoffman">
              <organization/>
            </author>
            <author initials="P." surname="McManus" fullname="P. McManus">
              <organization/>
            </author>
            <date year="2018" month="October"/>
            <abstract>
              <t>This document defines a protocol for sending DNS queries and getting DNS responses over HTTPS.  Each DNS query-response pair is mapped into an HTTP exchange.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8484"/>
          <seriesInfo name="DOI" value="10.17487/RFC8484"/>
        </reference>
        <reference anchor="RFC8945" target="https://www.rfc-editor.org/info/rfc8945">
          <front>
            <title>Secret Key Transaction Authentication for DNS (TSIG)</title>
            <author initials="F." surname="Dupont" fullname="F. Dupont">
              <organization/>
            </author>
            <author initials="S." surname="Morris" fullname="S. Morris">
              <organization/>
            </author>
            <author initials="P." surname="Vixie" fullname="P. Vixie">
              <organization/>
            </author>
            <author initials="D." surname="Eastlake 3rd" fullname="D. Eastlake 3rd">
              <organization/>
            </author>
            <author initials="O." surname="Gudmundsson" fullname="O. Gudmundsson">
              <organization/>
            </author>
            <author initials="B." surname="Wellington" fullname="B. Wellington">
              <organization/>
            </author>
            <date year="2020" month="November"/>
            <abstract>
              <t>This document describes a protocol for transaction-level authentication using shared secrets and one-way hashing.  It can be used to authenticate dynamic updates to a DNS zone as coming from an approved client or to authenticate responses as coming from an approved name server.</t>
              <t>No recommendation is made here for distributing the shared secrets; it is expected that a network administrator will statically configure name servers and clients using some out-of-band mechanism.</t>
              <t>This document obsoletes RFCs 2845 and 4635.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="93"/>
          <seriesInfo name="RFC" value="8945"/>
          <seriesInfo name="DOI" value="10.17487/RFC8945"/>
        </reference>
        <reference anchor="I-D.draft-ietf-mboned-cbacc" target="https://www.ietf.org/archive/id/draft-ietf-mboned-cbacc-02.txt">
          <front>
            <title>Circuit Breaker Assisted Congestion Control</title>
            <author fullname="Jake Holland">
              <organization>Akamai Technologies, Inc.</organization>
            </author>
            <date month="February" day="1" year="2021"/>
            <abstract>
              <t>   This document specifies Circuit Breaker Assisted Congestion Control
   (CBACC).  CBACC enables fast-trip Circuit Breakers by publishing rate
   metadata about multicast channels from senders to intermediate
   network nodes or receivers.  The circuit breaker behavior is defined
   as a supplement to receiver driven congestion control systems, to
   preserve network health if misbehaving or malicious receiver
   applications subscribe to a volume of traffic that exceeds capacity
   policies or capability for a network or receiving device.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-mboned-cbacc-02"/>
        </reference>
        <reference anchor="I-D.draft-ietf-mboned-ambi" target="https://www.ietf.org/archive/id/draft-ietf-mboned-ambi-01.txt">
          <front>
            <title>Asymmetric Manifest Based Integrity</title>
            <author fullname="Jake Holland">
              <organization>Akamai Technologies, Inc.</organization>
            </author>
            <author fullname="Kyle Rose">
              <organization>Akamai Technologies, Inc.</organization>
            </author>
            <date month="October" day="31" year="2020"/>
            <abstract>
              <t>   This document defines Asymmetric Manifest-Based Integrity (AMBI).
   AMBI allows each receiver or forwarder of a stream of multicast
   packets to check the integrity of the contents of each packet in the
   data stream.  AMBI operates by passing cryptographically verifiable
   hashes of the data packets inside manifest messages, and sending the
   manifests over authenticated out-of-band communication channels.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-mboned-ambi-01"/>
        </reference>
        <reference anchor="I-D.draft-ietf-core-comi" target="https://www.ietf.org/archive/id/draft-ietf-core-comi-11.txt">
          <front>
            <title>CoAP Management Interface (CORECONF)</title>
            <author fullname="Michel Veillette">
              <organization>Trilliant Networks Inc.</organization>
            </author>
            <author fullname="Peter van der Stok">
              <organization>consultant</organization>
            </author>
            <author fullname="Alexander Pelov">
              <organization>Acklio</organization>
            </author>
            <author fullname="Andy Bierman">
              <organization>YumaWorks</organization>
            </author>
            <author fullname="Ivaylo Petrov">
              <organization>Acklio</organization>
            </author>
            <date month="January" day="17" year="2021"/>
            <abstract>
              <t>   This document describes a network management interface for
   constrained devices and networks, called CoAP Management Interface
   (CORECONF).  The Constrained Application Protocol (CoAP) is used to
   access datastore and data node resources specified in YANG, or SMIv2
   converted to YANG.  CORECONF uses the YANG to CBOR mapping and
   converts YANG identifier strings to numeric identifiers for payload
   size reduction.  CORECONF extends the set of YANG based protocols,
   NETCONF and RESTCONF, with the capability to manage constrained
   devices and networks.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-core-comi-11"/>
        </reference>
        <reference anchor="I-D.draft-openconfig-rtgwg-gnmi-spec" target="https://www.ietf.org/archive/id/draft-openconfig-rtgwg-gnmi-spec-01.txt">
          <front>
            <title>gRPC Network Management Interface (gNMI)</title>
            <author fullname="Rob Shakir">
              <organization>Google</organization>
            </author>
            <author fullname="Anees Shaikh">
              <organization>Google</organization>
            </author>
            <author fullname="Paul Borman">
              <organization>Google</organization>
            </author>
            <author fullname="Marcus Hines">
              <organization>Google</organization>
            </author>
            <author fullname="Carl Lebsack">
              <organization>Google</organization>
            </author>
            <author fullname="Chris Morrow">
              <organization>Google</organization>
            </author>
            <date month="March" day="5" year="2018"/>
            <abstract>
              <t>   This document describes the gRPC Network Management Interface (gNMI),
   a network management protocol based on the gRPC framework.  gNMI
   supports retrieval and manipulation of state from network elements
   where the data is represented by a tree structure, and addressable by
   paths.  The gNMI service defines operations for configuration
   management, operational state retrieval, and bulk data collection via
   streaming telemetry.  The authoritative gNMI specification is
   maintained at [GNMI-SPEC].

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-openconfig-rtgwg-gnmi-spec-01"/>
        </reference>
      </references>
    </references>
  </back>
  <!-- ##markdown-source:
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
+5MAAA==

-->

</rfc>
