<?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-01" 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="2020" month="October" day="30"/>

    <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.
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/dorms:udp-stream:
    +--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@2020-10-31.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 2019-09-26 {
        description "Initial revision as an extension.";
        reference
          "";
    }

    augment
      "/dorms:metadata/dorms:sender/dorms:group/dorms:udp-stream" {
        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:
H4sIAGzfnV8AA619a3PbSLLld/4KrPzB9r0kJfnVtmZievSyWz2S7Wupp3di
Z2MDBIpktUGAgwKllh3u337zZGY9wIft2d2OuHcoEqjKysrKPPmo9Gg0GnS2
q8xRdmrbYmW77KQ1+UfTZsfOWdeZMjtt6plxnW1qfOzaphrkk0lrbumdk+PT
00HZFHW+oCHKNp92I2u66WgxaWpTjopJXhSjg8NBmXf0wJODJwejw4PR04NB
QV/Mmvb+KHNdORjYZXuUde3KdU8ODl4dPBnkRMZR9m7pBndN+3HWNqvlUXbF
ow4+mnv6sjzKLurOtLXpRmeYeTBwXV6X/yev6Kmj7N64wdIeZf+ra4ph5pq2
a83U0af7BT7878EgX3Xzpj0aZKNBRv/Z2h1lP4+zn5qqonH4O1nYz8SR3tdN
OzvKjj/mi9xmN6aY103VzKyh0S/qYsyPOJrOdEfZ4fMD4mmTl3f5Pf9Q2I5W
fZovJq0tZ2aYXR1nB08Onz2TX5sV8Zge+KW24P51R4xyWTPNjhemtUXOTxma
uDrKfiO65kLWmNjw1xm+HhfNYjCom3aRd/bW0PKyD69PnxwevtKPP7x6fqAf
Xx68fBY/PvcfD38I3z59xs9ejM7Gm9tb0iRudPCVJ2iVlh8Y2Hq6RtLTFy9f
+o8/PPUfn7048IQ+P3zxQj++IMnxH394Er59efCDX9QPLw49zS+e8cf3eTc/
ndt2ecQ8UznfW4avs/Pp1BbW1F12fEucyyeVyU6ImXe27ObZOQk9CCbBJ9Kz
t6aDKPKwbo+HDALE/430f73U/N3W+T0E6oOdGNs2Ox77sCqbapr9hOdMaXc9
ZYt53pbZmzFR2Oa1XX3c8eTPtrXZ2/y2JdKrHc9ckkidNh2JaLX5CAv3mVnm
bbcAb0j2zitTdJC+KiP20KuL5YqOXnZez2xtSC7rGSg0kNpb0zoS8e3DXl8e
n+5fn16PPDevGpLzBgMMIesQknJ9FK88Dp7Sn68vL85GZ5e6p3k7wyGbd93S
He3vW2PM78uqac0YH8c05z6ppxXWsX948PTl85fPesLgR6NzF7RcIVqON73K
701Lx3Cxqjpavuu+vvGqQn6lTaL33Pbf30DFtPX2H6/G2eVqssk9/+OV7T6Z
epEXc9Nuf4gmv57nt1t+5h24OD8/FwVF22YcjqVfx9m7C9JXB+PDw4NX+z9f
H5+OiedPxi8Pnr569RIH6vKqf5TwRfaauALLQDPOTE0yAL6drohjfNizS2Xh
lWdhdkPy6xaWDAxx+5pWsjBbDxQv55gYQpZi1Q2z8zEWd2KJs3nxEbqWNqxb
ddn5Lx/OT99dJcJy+OrVK/5TlI4f8f3ZaxEWkpW7u7uxWbWG1OV42u6ben+5
mlREIYRgn/QeSc5dXZHm3i/MqCIa8pZU2cGLg8PxspxC11ye9vlxMzf4MkrL
NrHKK7J7tpsvvkeHXK7szNLR+vRpl/q4JGGvPzWkbQrr8nrXYz83c7LfbXNX
tA2Zym9z6rrHKNLp41Vtl3Zsu/0/8oODH8gy7LdV8erVeOnGs0/MjjXx+GAK
g4M8Klv6n3pTEr6HA9edwbtXxWle12aXqs1rMtJFM3HN5rmSR65Indk6+7vp
SHFVm2qWD0dUPNB6p3lliSu1zYfZiWk/msrsUGuX+V3Lsu8fIwWMTSd9eZlP
GlLFBHW+LY+H48KR+a5WZDXzsSlX+3+Ued3uEyhonXH7L8jI7b/Oq+rgYP/O
mI+v9lk/kfJUiUw29Tn9eX11uiah14umIdPGO0BUmeRUbuK879meN6vRRZ39
7W4n31nwdipE5l4wJ9cwxsTFaHyI8Y3riKQ1k/D1Y01cnKyYfx2Bs9YsCfy5
fWLRPhTa6ODJ85FbFMUa0/DbYDAajbJ8QugtLwhR3syty7wFydzSFHZqYTy/
Hy1njxgmPx4P+H8zUwNnuGxKTB+RUV2uD+ayyX3GusjNYVh5nxamy4nMnGgj
XZhqmDnORUXjtc2ClHpdYoSuIe1JLF0QosDrtZrbuimBJtus1bPpxgNorUJJ
mOh6JoZMiKXnsHwzJSNfZrnL8sytlsvKMDdoDj9Kpid8i7pz98SXBSFjenzZ
GrI6t5GcuckrEkc7zcgcyJy0YJp2QUevsM3KxSlymli1syMyJq5oCVdh2Dy7
xZkxOLO0bwB1WTfPu8z8XhhTuqzIlzlgd7ZsMKxwAF9ObIWvYbHyQFTgDmgp
zS3hmrHIxcKWZWUGgwfwPNqmXBWgZl1KhF//TzLih8gD6mSbCTneGJZefTzE
5tDOMktKyM/nzwrvv3wZD3iLT0/irvotJYXY9WhfkZrJJrYbfV3o+Et4OPnC
wWUhkSizOzJqwuH7YWD5kAEjrGgWPABaN21OZHjVyLaKiKxqs028XSN72s2D
+DwkBs1mrZmB1rDH/Az9vzAqra9uvDAIdzBIEKEyTAJONbSexYJsHTxUfrA1
/1pZBoHKjuEa0+Ju/eP47RthPZysL1+yBQlJZYSgfDXD444HPXv34eqaHv26
Y0Uj8JAyzHggby3b5taWPOHCgHbrFizDyelX/bG+hZg6MtfvIH17/7A1/D6E
vpuTvz2b0/gfzq9vTt+9fQ20iIMwDPsQFAjOC01+R94J3hUNU5BBLq0rGj65
JAGkDhyOKBPgaWKJIUEy7GSw9w4fh36fN6VqJjkQ4ZWr43+QGKd7VKaKaDs1
tOOugX6g2VsdfphNlB+8fZZFhajIaxKhCnEFga9KDKQIDASdRbMUlNsTg3/n
mNEpINjrdHqI4ZLn153lN64Na5fs6fjJ+CnmTY40E5oRA0oSzEKRBs0s7Pa6
F4cS3q6qeFU1BLZdPjNqMHgvUxLylrm7bBy9DYXKG6avYIycmMUykmxkOCLg
CnGnzT07O2YJ8Ub2kc2Js7Nati2xJrT0riHs44QkUkSJoF68ZyEid5WAWZ3d
kds6Yi6bMtl6mIJibgkvbjFE48H57/liWUkwZbehyqa262SB1vU4Y+uiWpWG
9oH8ni9fhtiQ+OFUPqhDKX8Af+ETaP/1/OTDqewhoh2sloUneVmSXXR8nokL
BA4WcjL2sJ2/NczvPQgxQkMrNiGJ+R4Q/qLTljyLJZUs0MOEO4+MFfH3pnUI
o0uPTu2M3CA6ELR3PK9d6KbILpq2bVr3uG9zt2honKeyYV1L61kSDbDZbbNs
AUFo57om4ft48OucEINbhRhMHNIbcdqAPARmWMEJCbIfONWrYh6XqHq5UG6w
0cFxVnOhBzRllGe3Bc6ozG0usCYFI5GBIGAC9Nyu+TXY3inZlgl5paOvIKEO
RlXChD1znRz2Z+PD9Kg/ZzF5l1Ccdx3N4nhOnC3iPp1zzMVaXCAWrQLHGAp4
5ZzMsGjwDR1YW+HPz59bMx0lvEgEsplOsV5SzASrQvxLTCEUL1kJtawJ4Wtk
yyleh5V+QAcdvgJl7NzdkVxuO7OsdJei3oi6Bw+yE1o8gsGQLfq/G0K4loOv
97K5H4kFiA27bO/ql+ubvaH8b/b2HX/+cP5fv1x8OD/D5+ufji8vwwf/xPVP
7365PIuf4pun766uzt+eycv0bbb2FVmmPTnqe+/e31y8e3t8ubep+bEvJGG0
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

-->

</rfc>

