<?xml version="1.0" encoding="UTF-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc2629 version 1.2.13 -->

<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
]>

<?rfc toc="yes"?>
<?rfc sortrefs="yes"?>
<?rfc symrefs="yes"?>

<rfc ipr="trust200902" docName="draft-ietf-mboned-cbacc-02" category="std">

  <front>
    <title abbrev="CBACC">Circuit Breaker Assisted Congestion Control</title>

    <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="2021" month="February" day="01"/>

    <area>Ops</area>
    <workgroup>Mboned</workgroup>
    <keyword>Internet-Draft</keyword>

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

  <middle>


<section anchor="introduction" title="Introduction">

<t>This document defines Circuit Breaker Assisted Congestion Control (CBACC).
CBACC defines a Network Transport Circuit Breaker (CB), as described by <xref target="RFC8084"/>.</t>

<t>The CB behavior defined in this document uses bit-rate metadata about multicast data streams coupled with policy, capacity, and load information at a network location to prune multicast channels so that the network’s aggregate capacity at that location is not exceeded by the subscribed channels.</t>

<t>To communicate the required metadata, this document defines a YANG <xref target="RFC7950"/> module that augments the DORMS <xref target="I-D.draft-ietf-mboned-dorms-00"/> YANG module.
DORMS provides a mechanism for senders to publish metadata about the multicast streams they’re sending through a RESTCONF service, so that receivers or forwarding nodes can discover and consume the metadata with a set of standard methods.
The CBACC metadata MAY be communicated to receivers or forwarding nodes by some other method, but the definition of any alternative methods is out of scope for this document.</t>

<t>The CB behavior defined in this document matches the description provided in Section 3.2.3 of <xref target="RFC8084"/> of a unidirectional CB over a controlled path.
The control messages from that description are composed of the messages containing the metadata required for operation of the CB.</t>

<t>CBACC is designed to supplement protocols that use multicast IP and rely on well-behaved receivers to achieve congestion control.
Examples of congestion control systems fitting this description include <xref target="PLM"/>, <xref target="RLM"/>, <xref target="RLC"/>, <xref target="FLID-DL"/>, <xref target="SMCC"/>, and WEBRC <xref target="RFC3738"/>.</t>

<t>CBACC addresses a problem with “overjoining” by untrusted receivers.</t>

<t>In an overjoining condition, receivers (either malicious, misconfigured, or with implementation errors) subscribe to multicast channels but do not respond appropriately to congestion.
When sufficient multicast traffic is available for subscription by such receivers, this can overload any network.</t>

<t>The overjoining problem is relevant to misbehaving receivers for both receiver-driven and feedback-driven congestion control strategies, as described in Section 4.1 of <xref target="RFC8085"/>.</t>

<t>Overjoining attacks and the challenges they present are discussed in more detail in <xref target="ref-overjoining"/>.</t>

<t>CBACC offers a solution for the recommendation in Section 4 of <xref target="RFC8085"/> that circuit breaker solutions be used even where congestion control is optional.</t>

<section anchor="background-and-terminology" title="Background and Terminology">

<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 anchor="venue" title="Venues for Contribution and Discussion">

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

<t><list style="symbols">
  <t>Join: https://www.ietf.org/mailman/listinfo/mboned</t>
  <t>Search: https://mailarchive.ietf.org/arch/browse/mboned/</t>
</list></t>

</section>
<section anchor="non-obvious-doc-choices" title="Non-obvious doc choices">

<t><list style="symbols">
  <t>Since nothing is necessarily being actively measured by a network component at the ingress, referring to the bitrate advertisement as an “ingress meter” for this context was considered confusing by reviewers, so the section was renamed with just a note pointing to the link.  Likewise the egress meter and “CB node”.</t>
  <t>TBD: might need more and better examples explaining the point in <xref target="ordering"/>?  Some reason to believe it’s not sufficiently clear…</t>
  <t>Another TBD: consider Dino’s suggestion from 2020-04-09 to include an operational considerations section that addresses some possible optimizations for CB placement and configuration.</t>
</list></t>

</section>
</section>
<section anchor="circuit-breaker-behavior" title="Circuit Breaker Behavior">

<section anchor="functional-components" title="Functional Components">

<t>This section maps the functional components described in Section 3.1 of <xref target="RFC8084"/> to the operational components of the CBACC CB defined by this document.</t>

<section anchor="bit-ad" title="Bitrate Advertisement">

<t>The metadata provides an advertised maximum data bit-rate, namely the “max-bits-per-second” field in the YANG model in <xref target="ref-yang"/>.
This is a self-report by the sender about the maximum amount of traffic a sender will send within the interval given by the “data-rate-window” field, which is the measurement interval.</t>

<t>The sender MUST NOT send more data for a data stream than the amount of data declared according to its advertised data rate within any measurement window, and it’s RECOMMENDED for the sender to provide some margin to account for forwarding bursts.
If a CB node observes a higher data rate within any measurement window, it MAY circuit-break that flow immediately.</t>

<t>In the terminology of <xref target="RFC8084"/>, this qualifies as an ingress meter.</t>

</section>
<section anchor="cb-node" title="Circuit Breaker Node">

<t>A circuit breaker node (CB node) is a location in a network where the costraints of the network and the observations about active traffic are compared to the bitrate advertisement in order to make the decision loop about when and whether to perform the circuit breaking behavior.
In the terminology of <xref target="RFC8084"/>, the CB node qualifies as an egress meter.</t>

<t>The CB node has access to several pieces of information that can be used as relevant egress metrics that may include:</t>

<t><list style="numbers">
  <t>Physical capacity limits on each interface.</t>
  <t>Configured capacity limits for multicast traffic for each interface.</t>
  <t>The observed received data rates of subscribed multicast channels with CBACC metadata.</t>
  <t>The observed received data rates of subscribed multicast channels without CBACC metadata.</t>
  <t>The observed received data rates of competing non-multicast traffic.</t>
  <t>The loss rate for subscribed multicast channels, when available.
The loss rate is only sometimes observable at a CB node; for example, when using AMBI <xref target="I-D.draft-ietf-mboned-ambi-00"/>, or when the data stream carries a protocol that is known to the CB node by some out of band means, and whose traffic can be monitored for loss.
When available, the loss rates may be used.</t>
</list></t>

<t>Note that any on-path router can behave as a CB node, even though there may be other CB nodes downstream or upstream covering the same data streams.
When viewing CB nodes as egress meters in the context of <xref target="RFC8084"/>, it’s important to recall there’s not a single egress meter in the network, but rather an egress meter per CB node, representing potentially multiple overlaid circuit breakers that may redundantly cover parts of the same path, with potentially different constraints based on the network location where the egress meter operates.
All of the CB nodes anywhere on a path constitute separate circuit breakers that may trip independently of other circuit breakers.</t>

<t>Also note that other kinds of components besides on-path routers forwarding the traffic can act as CB nodes, for example the operating system or browser on a device receiving the traffic, or the receiving application itself.</t>

</section>
<section anchor="communication-method" title="Communication Method">

<t>CBACC generally operates at a CB node, where metrics such as those described in <xref target="cb-node"/> are available through system calls, or by communication with various locally deployable system monitoring applications.
However, the CBACC processing can equivalently occur on a separate device that can monitor statistics gathered at a CB node, as long as the necessary control functions to trigger the CB can be invoked.</t>

<t>The communication path defined in this document for the CB node to obtain the bitrate advertisement in <xref target="bit-ad"/> is the use of DORMS <xref target="I-D.draft-ietf-mboned-dorms-00"/>.
Other methods MAY be used as well or instead, but are out of scope for this document.</t>

</section>
<section anchor="measurement-function" title="Measurement Function">

<t>The measurement function maintains a few values for each interface, computed from the metrics described in <xref target="cb-node"/> and <xref target="bit-ad"/>:</t>

<t><list style="numbers">
  <t>The aggregate advertised maximum bit-rate capacity consumed by CBACC data streams.
This is the sum of the max-bit-rate values in the CBACC metadata for all data streams subscribed through an interface</t>
  <t>An oversubscription threshold for each interface.
The oversubscription threshold will be determined differently for CB nodes in different contexts.
In some network devices, it might be as simple as an administratively configured absolute value or proportion of an interface’s capacity.
For other situations, like a CB node operating in a context with loss visibility, it could be a dynamically changing value that grows when data streams are successfully subscribed and receiving data without loss, and shrinks as loss is observed across subscribed data streams.
The oversubscription threshold calculation could also incorporate other information like out-of-band path capacity measurements with <xref target="PathChirp"/>, if available.  <vspace blankLines='1'/>
This document covers some non-normative examples of valid oversubscription threshold functions in <xref target="ref-oversubscribe-thresh"/>.
In general, the oversubscription threshold is the primary parameter that different CBs in different contexts can tune to provide the safety guarantees necessary for their context.</t>
</list></t>

</section>
<section anchor="trigger-function" title="Trigger Function">

<t>The trigger function fires when the aggregate advertised maximum bit-rate exceeds the oversubscription threshold for any interface.</t>

<t>When oversubscribed, the trigger function changes the states of subscribed channels to “blocked” until the aggregate subscribed bit-rate is below the oversubscription threshold again.</t>

<section anchor="ordering" title="Fairness and Inter-flow Ordering">

<t>The trigger function orders the monitored flows according to a fairness function and a within-sender priority ordering (chosen by the sender as part of the CBACC metadata).
When flows are blocked, they’re blocked in order until the aggregate bitrate of the permitted flows do not exceed the oversubscription thresholds monitored by the CB node.</t>

<t>Flows from a single sender MUST be ordered according to their priority field from the CBACC metadata when compared with each other.  This takes precedence over the fairness function ordering, since certain flows from the same sender may need strict priority over others.</t>

<t>For example, consider a sender using File Delivery over Unidirectional Transport (FLUTE, defined in <xref target="RFC6726"/>) that sends File Delivery Table Instances (see section 3.2 of <xref target="RFC6726"/>) in one (S,G) and data for the various referenced files in other (S,G)s.
In this case the data for the files will not be consumable without the (S,G) containing the FDT.
Other transport protocols may similarly send control information (often with a lower bitrate) on one channel, and data information on another.
In these cases, the sender may need to ensure that data channels are only available when the control channels are also available.</t>

<t>When comparing flows between senders, (S,G)s from the same sender with different priorities should be treated as aggregated (S,G)s with regard to their declared bitrate consumption, to ensure that if any flows from the same sender need to be pruned by the circuit-breaker, the least preferred priority flows from that sender are pruned first.</t>

<t>Between-sender flows and flows from the same sender with the same priority are ordered according to the fairness function.  TBD: need to work thru detsils, this does not work as written.  Sample fairness function would reward senders for splitting a flow in 2 (more total subscribers).  Maybe should count offload instead?  This has trouble from favoring padding in your flow, but is (i think?) dominated by subscriber count where that’s known.
The fairness function can be different for CBs in different contexts.</t>

<t>A CBACC CB implementation SHOULD provide mechanisms for administrative controls to configure explicit biases, as this may be necessary to support Service Level Agreements for specific events or providers, or to block or de-prioritize channels with historically known misbehavior.</t>

<t>Subject to the above constraints, where possible the default fairness behavior SHOULD favor streams with many receivers over streams with few receivers, and streams with a low bit-rate over streams with a high bit-rate.  See <xref target="fairness"/> for further considerations and examples.</t>

</section>
</section>
<section anchor="reaction" title="Reaction">

<t>When the trigger function fires and a subscribed channel becomes blocked, the reaction depends on whether it’s an upstream interface or a downstream interface.</t>

<t>If a channel is blocked on one or more downstream interfaces, it may still be unblocked on other downstream interfaces.
When this is the case, traffic is simply not forwarded along blocked interfaces, even though clients might still be joined downstream of those interfaces.</t>

<t>When a channel is blocked on all downstream interfaces or when the upstream interface is oversubscribed, the channel is pruned so that data no longer arrives from the network on the upstream interface.
The prune would be performed with a PIM prune (Section 3.5 of <xref target="RFC7761"/>), or a “leave” operation to be communicated via IGMP, MLD, or another multicast group signaling mechanism, according to the expected signaling within the network.</t>

<t>Once initially pruned, a flow SHOULD remain pruned for a minimum amount of time.
The minimum hold-down duration SHOULD be no less than 2.5 minutes by default, even if available bitrate space clears up, to ensure downstream subscriptions will notice and respond.
The hold-down duration SHOULD be extended from the minimum by a randomly chosen number of seconds uniformly distributed over a configurable desynchronization period, to avoid synchronized recovery of different circuit breakers along the path.
The default length of the desynchronization period should be at least 30 seconds.</t>

<t>2.5 minutes is chosen to exceed the default maximum lifetime of 2 minutes that can occur if an IGMP responder suddenly stops operation, and ceases responding to IGMP queries with membership reports, and 30 seconds is chosen to allow for some flexibility in lost packets.
The values MAY be administratively tuned as needed by network operators to meet performance goals specific to their networks or to the traffic they’re forwarding.</t>

<t>When enough capacity is available for a circuit-broken stream to be unblocked and the circuit-breaker hold-down time is expired, flows SHOULD be unblocked according to the priority order until no more flows can be unblocked without exceeding the circuit breaker limits.</t>

</section>
<section anchor="feedback-control-mechanism" title="Feedback Control Mechanism">

<t>The bitrate advertisement metadata from <xref target="bit-ad"/> should be refreshed as needed to maintain up to date values.
When using DORMS and RESTCONF, the Subscription to YANG Notifications for Datastore Updates <xref target="RFC8641"/> is the preferred method to receive changes if available.</t>

<t>If datastore subscriptions are not supported by the client or server, the HTTP Cache Control headers provide valid refresh time properties from the server, and SHOULD be used if present.
If No-Cache is used, the default refresh timing SHOULD be 30 seconds.
A uniformly distributed random value between 0 and 10 seconds SHOULD be added to the Cache Control or the default refresh timing to avoid synchronization across multiple clients.</t>

</section>
</section>
<section anchor="states" title="States">

<section anchor="interface-state" title="Interface State">

<t>A CB holds the following state for each interface, for both the inbound and outbound directions on that interface:</t>

<t><list style="symbols">
  <t>aggregate bandwidth:  The sum of the bandwidths of all non-circuit-broken CBACC flows that transit this interface in this direction.</t>
  <t>bandwidth limit:  The maximum aggregate CBACC advertised bandwidth allowed, not including circuit-broken flows.  <vspace blankLines='1'/>
When reducing the bandwidth limit due to congestion, the circuit breaker SHOULD NOT reduce the limit by more than half its value in 10 seconds, and SHOULD use a smoothing function to reduce the limit gradually over time.  <vspace blankLines='1'/>
It is RECOMMENDED that no more than half the capacity for a link be allocated to CBACC flows if the link might be shared with unicast traffic that is responsive to congestion.</t>
</list></t>

</section>
<section anchor="flow-state" title="Flow State">

<t>Data streams with CBACC metadata have a state for the upstream interface through which the stream is joined:</t>

<t><list style="symbols">
  <t>‘subscribed’<vspace />
Indicates that the circuit breaker is subscribed upstream to the flow and forwarding packets through zero or more egress interfaces.</t>
  <t>‘pruned’<vspace />
Indicates that the flow has been circuit-broken.
A request to unsubscribe from the flow has been sent upstream, e.g. a PIM prune (Section 3.5 of <xref target="RFC7761"/>) or a “leave” operation communicated via IGMP, MLD, or another group membership management mechanism.</t>
</list></t>

<t>Data streams also have a per-interface state for downstream interfaces with subscribers, where the data is being forwarded.
It’s one of:</t>

<t><list style="symbols">
  <t>‘forwarding’<vspace />
Indicates that the flow is a non-circuit-broken flow in steady state, forwarding packets downstream.</t>
  <t>‘blocked’<vspace />
Indicates that data packets for this flow are NOT forwarded downstream via this interface.</t>
</list></t>

</section>
</section>
<section anchor="implementation-design-considerations" title="Implementation Design Considerations">

<section anchor="ref-oversubscribe-thresh" title="Oversubscription Thresholds">

<t>TBD.</t>

</section>
<section anchor="fairness" title="Fairness Functions">

<t>As an example fairness function that makes good sense for a general case of unknown traffic:</t>

<t>Consider a network where the receiver count for multicast channels is known, for example via the experimental PIM extension for population count defined in <xref target="RFC6807"/>.</t>

<t>A good fairness metric for a flow is max-bandwidth divided by receiver-count, with lower values of the fairness metric favored over higher values.</t>

<t>An overview of some other approaches to appropriate fairness metrics is given in Section 2.3 of <xref target="RFC5166"/>.</t>

</section>
</section>
</section>
<section anchor="ref-yang" title="YANG Module">

<section anchor="tree-diagram" title="Tree Diagram">

<t>The tree diagram below follows the notation defined in <xref target="RFC8340"/>.</t>

<figure><artwork><![CDATA[
module: ietf-cbacc

  augment /dorms:metadata/dorms:sender/dorms:group:
    +--rw cbacc!
       +--rw max-bits-per-second    uint32
       +--rw max-mss?               uint16
       +--rw data-rate-window?      uint32
       +--rw priority?              uint16

]]></artwork></figure>

</section>
<section anchor="module" title="Module">

<figure><artwork><![CDATA[
<CODE BEGINS> file ietf-cbacc@2021-02-01.yang
module ietf-cbacc {
    yang-version 1.1;

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

    import ietf-dorms {
        prefix "dorms";
        reference "I-D.jholland-mboned-dorms";
    }

    organization "IETF";

    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
     draft-jholland-mboned-cbacc.  See the internet draft 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 bandwidth consumption
     metadata for SSM channels, as an extension to DORMS
     (draft-jholland-mboned-dorms).";

    revision 2021-01-15 {
        description "Initial revision as an extension.";
        reference
          "";
    }

    augment
      "/dorms:metadata/dorms:sender/dorms:group" {
        description "Definition of the manifest stream providing
            integrity info for the data stream";

      container cbacc {
        presence "cbacc-enabled flow";
        description
          "Information to enable fast-trip circuit breakers";
        leaf max-bits-per-second {
            type uint32;
            mandatory true;
            description "Maximum bitrate for this stream, in Kilobits
                of IP packet data (including headers) of native
                multicast traffic per second";
        }
        leaf max-mss {
            type uint16;
            default 1400;
            description "Maximum payload size, in bytes";
        }
        leaf data-rate-window {
            type uint32;
            default 2000;
            description
              "Time window over which data rate is guaranteed,
               in milliseconds.";
            /* TBD: range limits? */
        }
        leaf priority {
            type uint16;
            default 256;
            description
              "The relative preference level for keeping this flow
               compared to other flows from this sender (higher
               value is more preferred to keep)";
        }
      }
    }
}

<CODE ENDS>
]]></artwork></figure>

</section>
</section>
<section anchor="iana-considerations" title="IANA Considerations">

<section anchor="yang-module-names-registry" title="YANG Module Names Registry">

<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"/>:</t>

<figure><artwork><![CDATA[
      name:      ietf-cbacc
      namespace: urn:ietf:params:xml:ns:yang:ietf-cbacc
      prefix:    cbacc
      reference: I-D.draft-ietf-mboned-cbacc
]]></artwork></figure>

</section>
<section anchor="the-xml-registry" title="The XML Registry">

<t>This document adds the following registration to the “ns” subregistry of the “IETF XML Registry” defined in <xref target="RFC3688"/>, referencing this document.</t>

<figure><artwork><![CDATA[
       URI: urn:ietf:params:xml:ns:yang:ietf-cbacc
       Registrant Contact: The IESG.
       XML: N/A, the requested URI is an XML namespace.
]]></artwork></figure>

</section>
</section>
<section anchor="security-considerations" title="Security Considerations">

<section anchor="metadata-security" title="Metadata Security">

<t>Be sure to authenticate the metadata.
See DORMS security considerations, and don’t accept unauthenticated metadata if using an alternative means.</t>

</section>
<section anchor="denial-of-service" title="Denial of Service">

<section anchor="state-overload" title="State Overload">

<t>Since CBACC flows require state, it may be possible for a set of receivers and/or senders, possibly acting in concert, to generate many flows in an attempt to overflow the circuit breakers’ state tables.</t>

<t>It is permissible for a network node to behave as a CBACC circuit breaker for some CBACC flows while treating other CBACC flows as non-CBACC, as part of a load balancing strategy for the network as a whole, or simply as defense against this concern when the number of monitored flows exceeds some threshold.</t>

<t>The same techniques described in Section 3.1 of <xref target="RFC4609"/> can be used to help mitigate this attack, for much the same reasons.
It is RECOMMENDED that network operators implement measures to mitigate such attacks.</t>

</section>
</section>
</section>
<section anchor="acknowledgements" title="Acknowledgements">

<t>Many thanks to Devin Anderson, Ben Kaduk, Cheng Jin, Scott Brown, Miroslav Ponec, Bob Briscoe, Lenny Giuliani, Christian Worm Mortensen, and Dino Farinacci for their thoughtful comments and contributions.</t>

</section>


  </middle>

  <back>

    <references title='Normative References'>





<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="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="RFC8084" target='https://www.rfc-editor.org/info/rfc8084'>
<front>
<title>Network Transport Circuit Breakers</title>
<author initials='G.' surname='Fairhurst' fullname='G. Fairhurst'><organization /></author>
<date year='2017' month='March' />
<abstract><t>This document explains what is meant by the term &quot;network transport                          Circuit Breaker&quot;.  It describes the need for Circuit Breakers (CBs) for network tunnels and applications when using non-congestion- controlled traffic and explains where CBs are, and are not, needed. It also defines requirements for building a CB and the expected outcomes of using a CB within the Internet.</t></abstract>
</front>
<seriesInfo name='BCP' value='208'/>
<seriesInfo name='RFC' value='8084'/>
<seriesInfo name='DOI' value='10.17487/RFC8084'/>
</reference>



<reference  anchor="RFC8085" target='https://www.rfc-editor.org/info/rfc8085'>
<front>
<title>UDP Usage Guidelines</title>
<author initials='L.' surname='Eggert' fullname='L. Eggert'><organization /></author>
<author initials='G.' surname='Fairhurst' fullname='G. Fairhurst'><organization /></author>
<author initials='G.' surname='Shepherd' fullname='G. Shepherd'><organization /></author>
<date year='2017' month='March' />
<abstract><t>The User Datagram Protocol (UDP) provides a minimal message-passing transport that has no inherent congestion control mechanisms.  This document provides guidelines on the use of UDP for the designers of applications, tunnels, and other protocols that use UDP.  Congestion control guidelines are a primary focus, but the document also provides guidance on other topics, including message sizes, reliability, checksums, middlebox traversal, the use of Explicit Congestion Notification (ECN), Differentiated Services Code Points (DSCPs), and ports.</t><t>Because congestion control is critical to the stable operation of the Internet, applications and other protocols that choose to use UDP as an Internet transport must employ mechanisms to prevent congestion collapse and to establish some degree of fairness with concurrent traffic.  They may also need to implement additional mechanisms, depending on how they use UDP.</t><t>Some guidance is also applicable to the design of other protocols (e.g., protocols layered directly on IP or via IP-based tunnels), especially when these protocols do not themselves provide congestion control.</t><t>This document obsoletes RFC 5405 and adds guidelines for multicast UDP usage.</t></abstract>
</front>
<seriesInfo name='BCP' value='145'/>
<seriesInfo name='RFC' value='8085'/>
<seriesInfo name='DOI' value='10.17487/RFC8085'/>
</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="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="I-D.draft-ietf-mboned-dorms-00">
<front>
<title>Discovery Of Restconf Metadata for Source-specific multicast</title>

<author initials='J' surname='Holland' fullname='Jake Holland'>
    <organization />
</author>

<date month='March' day='11' year='2020' />

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

<seriesInfo name='Internet-Draft' value='draft-ietf-mboned-dorms-00' />
<format type='TXT'
        target='http://www.ietf.org/internet-drafts/draft-ietf-mboned-dorms-00.txt' />
</reference>



<reference anchor="I-D.draft-ietf-mboned-ambi-00">
<front>
<title>Asymmetric Manifest Based Integrity</title>

<author initials='J' surname='Holland' fullname='Jake Holland'>
    <organization />
</author>

<author initials='K' surname='Rose' fullname='Kyle Rose'>
    <organization />
</author>

<date month='March' day='11' 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-00' />
<format type='TXT'
        target='http://www.ietf.org/internet-drafts/draft-ietf-mboned-ambi-00.txt' />
</reference>




    </references>

    <references title='Informative References'>





<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="RFC3738" target='https://www.rfc-editor.org/info/rfc3738'>
<front>
<title>Wave and Equation Based Rate Control (WEBRC) Building Block</title>
<author initials='M.' surname='Luby' fullname='M. Luby'><organization /></author>
<author initials='V.' surname='Goyal' fullname='V. Goyal'><organization /></author>
<date year='2004' month='April' />
<abstract><t>This document specifies Wave and Equation Based Rate Control (WEBRC), which provides rate and congestion control for data delivery.  WEBRC is specifically designed to support protocols using IP multicast.  It provides multiple-rate, congestion-controlled delivery to receivers, i.e., different receivers joined to the same session may be receiving packets at different rates depending on the bandwidths of their individual connections to the sender and on competing traffic along these connections.  WEBRC requires no feedback from receivers to the sender, i.e., it is a completely receiver-driven congestion control protocol.  Thus, it is designed to scale to potentially massive numbers of receivers attached to a session from a single sender.  Furthermore, because each individual receiver adjusts to the available bandwidth between the sender and that receiver, there is the potential to deliver data to each individual receiver at the fastest possible rate for that receiver, even in a highly heterogeneous network architecture, using a single sender.  This memo defines an Experimental Protocol for the Internet community.</t></abstract>
</front>
<seriesInfo name='RFC' value='3738'/>
<seriesInfo name='DOI' value='10.17487/RFC3738'/>
</reference>



<reference  anchor="RFC4609" target='https://www.rfc-editor.org/info/rfc4609'>
<front>
<title>Protocol Independent Multicast - Sparse Mode (PIM-SM) Multicast Routing Security Issues and Enhancements</title>
<author initials='P.' surname='Savola' fullname='P. Savola'><organization /></author>
<author initials='R.' surname='Lehtonen' fullname='R. Lehtonen'><organization /></author>
<author initials='D.' surname='Meyer' fullname='D. Meyer'><organization /></author>
<date year='2006' month='October' />
<abstract><t>This memo describes security threats for the larger (intra-domain or inter-domain) multicast routing infrastructures.  Only Protocol Independent Multicast - Sparse Mode (PIM-SM) is analyzed, in its three main operational modes: the traditional Any-Source Multicast (ASM) model, the source-specific multicast (SSM) model, and the ASM model enhanced by the Embedded Rendezvous Point (Embedded-RP) group-to-RP mapping mechanism.  This memo also describes enhancements to the protocol operations that mitigate the identified threats.  This memo provides information for the Internet community.</t></abstract>
</front>
<seriesInfo name='RFC' value='4609'/>
<seriesInfo name='DOI' value='10.17487/RFC4609'/>
</reference>



<reference  anchor="RFC5166" target='https://www.rfc-editor.org/info/rfc5166'>
<front>
<title>Metrics for the Evaluation of Congestion Control Mechanisms</title>
<author initials='S.' surname='Floyd' fullname='S. Floyd' role='editor'><organization /></author>
<date year='2008' month='March' />
<abstract><t>This document discusses the metrics to be considered in an evaluation of new or modified congestion control mechanisms for the Internet.  These include metrics for the evaluation of new transport protocols, of proposed modifications to TCP, of application-level congestion control, and of Active Queue Management (AQM) mechanisms in the router.  This document is the first in a series of documents aimed at improving the models that we use in the evaluation of transport protocols.</t><t>This document is a product of the Transport Modeling Research Group (TMRG), and has received detailed feedback from many members of the Research Group (RG).  As the document tries to make clear, there is not necessarily a consensus within the research community (or the IETF community, the vendor community, the operations community, or any other community) about the metrics that congestion control mechanisms should be designed to optimize, in terms of trade-offs between throughput and delay, fairness between competing flows, and the like.  However, we believe that there is a clear consensus that congestion control mechanisms should be evaluated in terms of trade-offs between a range of metrics, rather than in terms of optimizing for a single metric.  This memo provides information for the Internet community.</t></abstract>
</front>
<seriesInfo name='RFC' value='5166'/>
<seriesInfo name='DOI' value='10.17487/RFC5166'/>
</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="RFC6726" target='https://www.rfc-editor.org/info/rfc6726'>
<front>
<title>FLUTE - File Delivery over Unidirectional Transport</title>
<author initials='T.' surname='Paila' fullname='T. Paila'><organization /></author>
<author initials='R.' surname='Walsh' fullname='R. Walsh'><organization /></author>
<author initials='M.' surname='Luby' fullname='M. Luby'><organization /></author>
<author initials='V.' surname='Roca' fullname='V. Roca'><organization /></author>
<author initials='R.' surname='Lehtonen' fullname='R. Lehtonen'><organization /></author>
<date year='2012' month='November' />
<abstract><t>This document defines File Delivery over Unidirectional Transport (FLUTE), a protocol for the unidirectional delivery of files over the Internet, which is particularly suited to multicast networks.  The specification builds on Asynchronous Layered Coding, the base protocol designed for massively scalable multicast distribution. This document obsoletes RFC 3926.  [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='RFC' value='6726'/>
<seriesInfo name='DOI' value='10.17487/RFC6726'/>
</reference>



<reference  anchor="RFC6807" target='https://www.rfc-editor.org/info/rfc6807'>
<front>
<title>Population Count Extensions to Protocol Independent Multicast (PIM)</title>
<author initials='D.' surname='Farinacci' fullname='D. Farinacci'><organization /></author>
<author initials='G.' surname='Shepherd' fullname='G. Shepherd'><organization /></author>
<author initials='S.' surname='Venaas' fullname='S. Venaas'><organization /></author>
<author initials='Y.' surname='Cai' fullname='Y. Cai'><organization /></author>
<date year='2012' month='December' />
<abstract><t>This specification defines a method for providing multicast distribution-tree accounting data.  Simple extensions to the Protocol Independent Multicast (PIM) protocol allow a rough approximation of tree-based data in a scalable fashion.  This document defines an  Experimental Protocol for the Internet community.</t></abstract>
</front>
<seriesInfo name='RFC' value='6807'/>
<seriesInfo name='DOI' value='10.17487/RFC6807'/>
</reference>



<reference  anchor="RFC7761" target='https://www.rfc-editor.org/info/rfc7761'>
<front>
<title>Protocol Independent Multicast - Sparse Mode (PIM-SM): Protocol Specification (Revised)</title>
<author initials='B.' surname='Fenner' fullname='B. Fenner'><organization /></author>
<author initials='M.' surname='Handley' fullname='M. Handley'><organization /></author>
<author initials='H.' surname='Holbrook' fullname='H. Holbrook'><organization /></author>
<author initials='I.' surname='Kouvelas' fullname='I. Kouvelas'><organization /></author>
<author initials='R.' surname='Parekh' fullname='R. Parekh'><organization /></author>
<author initials='Z.' surname='Zhang' fullname='Z. Zhang'><organization /></author>
<author initials='L.' surname='Zheng' fullname='L. Zheng'><organization /></author>
<date year='2016' month='March' />
<abstract><t>This document specifies Protocol Independent Multicast - Sparse Mode (PIM-SM).  PIM-SM is a multicast routing protocol that can use the underlying unicast routing information base or a separate multicast-capable routing information base.  It builds unidirectional shared trees rooted at a Rendezvous Point (RP) per group, and it optionally creates shortest-path trees per source.</t><t>This document obsoletes RFC 4601 by replacing it, addresses the errata filed against it, removes the optional (*,*,RP), PIM Multicast Border Router features and authentication using IPsec that lack sufficient deployment experience (see Appendix A), and moves the PIM specification to Internet Standard.</t></abstract>
</front>
<seriesInfo name='STD' value='83'/>
<seriesInfo name='RFC' value='7761'/>
<seriesInfo name='DOI' value='10.17487/RFC7761'/>
</reference>



<reference  anchor="RFC8641" target='https://www.rfc-editor.org/info/rfc8641'>
<front>
<title>Subscription to YANG Notifications for Datastore Updates</title>
<author initials='A.' surname='Clemm' fullname='A. Clemm'><organization /></author>
<author initials='E.' surname='Voit' fullname='E. Voit'><organization /></author>
<date year='2019' month='September' />
<abstract><t>This document describes a mechanism that allows subscriber applications to request a continuous and customized stream of updates from a YANG datastore.  Providing such visibility into updates enables new capabilities based on the remote mirroring and monitoring of configuration and operational state.</t></abstract>
</front>
<seriesInfo name='RFC' value='8641'/>
<seriesInfo name='DOI' value='10.17487/RFC8641'/>
</reference>


<reference anchor="PathChirp" >
  <front>
    <title>pathChirp: Efficient Available Bandwidth Estimation for Network Paths</title>
    <author initials="V.J." surname="Ribeiro" fullname="Vinay J. Ribeiro">
      <organization></organization>
    </author>
    <author initials="R.H." surname="Riedi" fullname="Rudolf H. Riedi">
      <organization></organization>
    </author>
    <author initials="R.G." surname="Baraniuk" fullname="Richard G. Baraniuk">
      <organization></organization>
    </author>
    <author initials="J." surname="Navratil" fullname="Jiri Navratil">
      <organization></organization>
    </author>
    <author initials="L." surname="Cottrell" fullname="Les Cottrell">
      <organization></organization>
    </author>
    <author >
      <organization>Department of Electrical and Computer Engineering Rice University</organization>
    </author>
    <author >
      <organization>SLAC/SCS-Network Monitoring, Stanford University</organization>
    </author>
    <date year="2003"/>
  </front>
</reference>
<reference anchor="FLID-DL" target="https://ieeexplore.ieee.org/document/1038584">
  <front>
    <title>FLID-DL: congestion control for layered multicast</title>
    <author initials="J.W." surname="Byers">
      <organization></organization>
    </author>
    <author initials="G." surname="Horn">
      <organization></organization>
    </author>
    <author initials="M." surname="Luby">
      <organization></organization>
    </author>
    <author initials="M." surname="Mitzenmacher">
      <organization></organization>
    </author>
    <author initials="W." surname="Shaver">
      <organization></organization>
    </author>
    <author >
      <organization>IEEE</organization>
    </author>
    <date year="n.d."/>
  </front>
  <seriesInfo name="DOI" value="10.1109/JSAC.2002.803998"/>
</reference>
<reference anchor="PLM" >
  <front>
    <title>PLM: Fast Convergence for Cumulative Layered Multicast Transmission Schemes</title>
    <author initials="A.Legout, E.W." surname="Biersack, Institut EURECOM">
      <organization></organization>
    </author>
    <date year="1999"/>
  </front>
  <format type="PDF" target="http://www.eurecom.fr/en/publication/340/download/ce-legoar-000601.pdf"/>
</reference>
<reference anchor="RLC" >
  <front>
    <title>The RLC multicast congestion control algorithm</title>
    <author initials="L." surname="Rizzo" fullname="Luigi Rizzo">
      <organization></organization>
    </author>
    <author initials="L." surname="Vicisano" fullname="Lorenzo Vicisano">
      <organization></organization>
    </author>
    <author initials="J." surname="Crowcroft" fullname="John Crowcroft">
      <organization></organization>
    </author>
    <date year="1999"/>
  </front>
  <format type="PS" target="http://www.iet.unipi.it/~a007834/rlc99.ps.gz"/>
</reference>
<reference anchor="RLM" >
  <front>
    <title>Receiver-driven Layered Multicast</title>
    <author initials="S." surname="McCanne" fullname="Steven McCanne">
      <organization></organization>
    </author>
    <author initials="V." surname="Jacobson" fullname="Van Jacobson">
      <organization></organization>
    </author>
    <author initials="M." surname="Vetterli" fullname="Martin Vetterli">
      <organization></organization>
    </author>
    <author >
      <organization>University of California, Berkeley</organization>
    </author>
    <author >
      <organization>Lawrence Berkeley National Laboratory</organization>
    </author>
    <date year="1995"/>
  </front>
  <format type="PDF" target="http://www1.cs.columbia.edu/~danr/courses/6761/Fall00/week9/layering.pdf"/>
</reference>
<reference anchor="SMCC" >
  <front>
    <title>Smooth Multirate Multicast Congestion Control</title>
    <author initials="G." surname="Kwon" fullname="Gu-In Kwon">
      <organization></organization>
    </author>
    <author initials="J.W." surname="Byers" fullname="John W. Byers">
      <organization></organization>
    </author>
    <author >
      <organization>Computer Science Department, Boston University</organization>
    </author>
    <date year="2002"/>
  </front>
  <format type="PDF" target="http://www.cs.bu.edu/techreports/pdf/2002-025-smcc.pdf"/>
</reference>


    </references>


<section anchor="ref-overjoining" title="Overjoining">

<t><xref target="RFC8085"/> describes several remedies for unicast congestion control under UDP, even though UDP does not itself provide congestion control.
In general, any network node under congestion could in theory collect evidence that a unicast flow’s sending rate is not responding to congestion, and would then be justified in circuit-breaking it.</t>

<t>With multicast IP, the situation is different, especially in the presence of malicious receivers.
A well-behaved sender using a receiver-controlled congestion scheme such as WEBRC does not reduce its send rate in response to congestion, instead relying on receivers to leave the appropriate multicast groups.</t>

<t>This leads to a situation where, when a network accepts inter-domain multicast traffic, as long as there are senders somewhere in the world with aggregate bandwidth that exceeds a network’s capacity, receivers in that network can join the flows and overflow the network capacity.
A receiver controlled by an attacker could do this at the IGMP/MLD level without running the application layer protocol that participates in the receiver-controlled congestion control.</t>

<t>A network might be able to detect and defend against the most naive version of such an attack by blocking end users that try to join too many flows at once.
However, an attacker can achieve the same effect by joining a few high-bandwidth flows, if those exist anywhere, and an attacker that controls a few machines in a network can coordinate the receivers so they join disjoint sets of non-responsive sending flows.</t>

<t>This scenario will produce congestion in a middle node in the network that can’t be easily detected at the edge where the IGMP/MLD join is accepted.
Thus, an attacker with a small set of machines in a target network can always trip a circuit breaker if present, or can induce excessive congestion among the bandwidth allocated to multicast.
This problem gets worse as more multicast flows become available.</t>

<t>Although the same can apply to non-responsive unicast traffic, network operators can assume that non-responsive sending flows are in violation of congestion control best practices, and can therefore cut off flows associated with the misbehaving senders.
By contrast, non-responsive multicast senders are likely to be well-behaved participants in receiver-controlled congestion control schemes.</t>

<t>However, receiver controlled congestion control schemes also show the most promise for efficient massive scale content distribution via multicast, provided network health can be ensured.
Therefore, mechanisms to mitigate overjoining attacks while still permitting receiver-controlled congestion control are necessary.</t>

</section>


  </back>

<!-- ##markdown-source:
H4sIAKZKGGAAA619aXPbSNLmd/4KrPzB9rskdfhoWzMxPbrsVo9key319E7s
bGyAQJFEGwQ4KEAy7dD89s0nM+sAD9sTux3xvkORQFVWVlbmk0elR6PRoC3a
0hwnZ0WTdUWbnDYm/WSa5MTawrYmT87qamZsW9QVPrZNXQ7SyaQxd/TO6cnZ
2SCvsypd0BB5k07bUWHa6WgxqSuTj7JJmmWjg6NBnrb0wNHB0SH9NTo4HGT0
xaxuVseJbfPBoFg2x0nbdLY9Ojh4TS+kRMZx8n5pB/d182nW1N3yOLnmUQef
zIq+zI+Ty6o1TWXa0TlmHgxsm1b5/0lLeuo4WRk7WBbHyf9q62yY2LppGzO1
9Gm1wIf/PRikXTuvm+NBMhok9F9R2ePk13HyS12WNA5/Jwv7lTjS+7puZsfJ
yad0kRbJrcnmVV3Ws8LQ6JdVNuZHLE1n2uPk8MUB8bRO8/t0xT9kRUurPksX
k6bIZ2aYXJ8kxJfnz+XXuiMe0wO/VQW4f9MSo2xST5OThWmKLOWnDE1cHid/
EF1zIWtMbPjrDF+Ps3oxGFR1s0jb4s7Q8pKPb86ODg9f68efXr840I+vDl49
Dx9fuI+HP/lvnz3nZy9H5+PN7c1pEjs6+MYTtMqCHxgU1XSNpGcvX71yH396
5j4+f3ngCH1x+PKlfnx5cORofvnTkf/21cFPblE/vTx0NL98zh8/pO38bF40
y2Pmmcr53tJ/nVxMp0VWmKpNTu6Ic+mkNMkpMfO+yNt5ckFCD4JJ8In05J1p
IYo8rN3jIb0A8X8j/V8nNX8vqnQFgfpYTEzR1Dse+9jldTlNfsFzJi92PVVk
87TJk7djorBJq6L7tOPJX4umSN6ldw2RXu545opE6qxuSUTLzUdYuM/NMm3a
BXhDsndRmqyF9JUJsYdeXSw7OnrJRTUrKkNyWc1AoYHU3pnGkohvH/bm6uRs
/+bsZuS4eV2TnNcYYAhZh5Dk66M45XHwjP58c3V5Pjq/0j1NmxkO2bxtl/Z4
f78wxnxelnVjxvg4pjn3ST11WMf+4cGzVy9ePe8JgxuNzp3XcploOd70Ml2Z
ho7hoitbWr5tv73xqkJ+p02i9+z2399CxTTV9h+vx8lVN9nknvvxumi/mGqR
ZnPTbH+IJr+Zp3dbfuYduLy4uBAFRdtmLI6lW8f5+0vSVwfjw8OD1/u/3pyc
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
WUSTXnF/8u8wjgtE3XUtYt//BccZDlj6cQAA

-->

</rfc>

