<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.29 (Ruby 3.4.4) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-janfred-radext-radius-congestion-control-01" category="exp" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.31.0 -->
  <front>
    <title abbrev="RADIUS Congestion Mitigations">Methods for Mitigation of Congestion and Load Issues on RADIUS Servers</title>
    <seriesInfo name="Internet-Draft" value="draft-janfred-radext-radius-congestion-control-01"/>
    <author initials="J.-F." surname="Rieckers" fullname="Jan-Frederik Rieckers">
      <organization abbrev="DFN">Deutsches Forschungsnetz | German National Research and Education Network</organization>
      <address>
        <postal>
          <street>Alexanderplatz 1</street>
          <city>Berlin</city>
          <code>10178</code>
          <country>Germany</country>
        </postal>
        <email>rieckers@dfn.de</email>
        <uri>www.dfn.de</uri>
      </address>
    </author>
    <date year="2025" month="October" day="20"/>
    <area/>
    <workgroup>RADIUS EXTensions</workgroup>
    <keyword>RADIUS</keyword>
    <abstract>
      <?line 36?>

<t>The RADIUS protocol as defined in <xref target="RFC2865"/> does not have a means to signal server overload or congesition to the clients.
This can lead to load problems, especially in a federated RADIUS proxy fabric.
This document attempts to fix this.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-janfred-radext-radius-congestion-control/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        RADIUS EXTensions  mailing list (<eref target="mailto:radext@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/radext/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/radext/"/>.
      </t>
    </note>
  </front>
  <middle>
    <?line 42?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>The RADIUS protocol <xref target="RFC2865"/> does not have a means to signal a server overload or a congestion to RADIUS clients.
These overload situations may be a result of a high load of legitimate traffic and might even be worsened by retransmissions of packets the server failed to answer due to the high load.
These situation can happen in a lost of scenarios.
In RADIUS proxy fabric, a server overload may even result from a single RADIUS client, for example when an EAP supplicant immediately starts a new authentication try without delay when getting a reject.</t>
      <t>Especially in RADIUS proxy fabrics, the impact of misbehaving clients on the whole proxy chain can be reduced by reducing the packet load at the entry level or as early in the proxy chain as possible.
Since the end user device cannot be controlled, we have to rely on the RADIUS proxies to implement coutermeasures.</t>
      <t>These countermeasures can be used to reduce the load by one of two methods.</t>
      <t>First, the response to requests can be delayed. By delaying RADIUS responses, the client has to wait for the answer to send its next request, which decreases the packet load on the server.
This method can also be used to slow down clients that immediately retry the authentication once they receive a reject.</t>
      <t>When a home server knows that an authentication of this client cannot succeed (for example because it used an expired certificate with EAP-TLS), and the client keeps retrying, any RADIUS actor along the proxy chain could generate a reject for this specific user.</t>
      <t>Pushing these countermeasures to the the earliest possible RADIUS Instance inside the proxy chain has multiple advantages over rejecting it at the home server.
First, it reduces the load on all proxies in the proxy chain, since they do not need to forward traffic that will get rejected anyway.
Secondly, when the response should get delayed, pushing this delay as far down the proxy chain prevents RADIUS retransmissions.
When the RADIUS proxy already has the response, it then does not need to proxy the retransmitted RADIUS packets, which reduces the load for the RADIUS proxies in the later proxy chain.
Instead, the RADIUS proxy just ignores the retransmission, since it already has an answer for this RADIUS packet, but the answer is just delayed.</t>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" 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>
      <?line -18?>

<t>Additionally, we use the following terms in this document, in the meaning as defined here:</t>
      <dl>
        <dt>RADIUS Instance</dt>
        <dd>
          <t>A single device or software module that implements the RADIUS protocol</t>
        </dd>
        <dt>RADIUS Client</dt>
        <dd>
          <t>A RADIUS Instance that sends RADIUS requests and receives RADIUS responses. This is only in reference to a single RADIUS hop.</t>
        </dd>
        <dt>RADIUS Server</dt>
        <dd>
          <t>A RADIUS Instance that receives RADIUS requests and sends RADIUS responses. Similar to the RADIUS Client, this is only in reference to a single RADIUS hop.</t>
        </dd>
        <dt>RADIUS Proxy</dt>
        <dd>
          <t>A single device or software module that acts as RADIUS server and RADIUS client at the same time. It receives RADIUS requests and forwards them towards the next RADIUS proxy, usually based on the realm of the User-Name attribute.</t>
        </dd>
        <dt>RADIUS Proxy Chain</dt>
        <dd>
          <t>the list of RADIUS Instances that a RADIUS Request traverses from the first RADIUS Client across any number of RADIUS proxies to the final RADIUS Server that responds to the RADIUS Request. When referring to the RADIUS Request, the chain starts from the first RADIUS client sending the RADIUS Request and ends at the last RADIUS Server. For the RADIUS Response, the chain is reversed. The terms "earlier" and "later" will always be used together with a reference to a request or a response. As example: a RADIUS proxy earlier in the chain for a request is located later in the chain for the response.</t>
        </dd>
        <dt>Enforcing Instance</dt>
        <dd>
          <t>The RADIUS Instance that enforces the response delay or the request blocking.</t>
        </dd>
      </dl>
    </section>
    <section anchor="protocol-description">
      <name>Protocol Description</name>
      <t>The protocol extension consists of two parts:
First, any RADIUS proxy in the proxy chain capable of either of the two countermeasures needs to signal this capability to the following RADIUS proxies and the home server, so they know whether or not they can use this feature.
Second, for the reply, the home server or RADIUS proxy needs to signal the reply policy back to the previous RADIUS proxies.</t>
      <section anchor="proxy-capability-attribute">
        <name>Proxy-Capability Attribute</name>
        <t>The Proxy-Capability Attribute is used to signal the capability of a RADIUS proxy to any RADIUS entity in the later proxy chain.
With the help of this, on the reply path, a RADIUS proxy can determine whether the requested action should be performed by itself or the packet will pass through another capable proxy later which can then perform the actions.</t>
        <t>The Proxy-Capability Attribute is of type string as defined in <xref section="3.5" sectionFormat="comma" target="RFC8044"/>.
The value of the Proxy-Capability Attribute is a concatenated list of the proxy capabilities the RADIUS Instance has.</t>
        <t>Correct formal description: TODO</t>
        <t>Informal description: concatenate all capabilities. values up to 127 are encoded in one byte, extended capabilities are encoded as two bytes.
For parsing, the receiver can look at the first bit, if it is a 0 it is a single-byte value, if it is a 1, then the capability is a two-byte value. This allows for simple extension, while keeping it as simple and short as possible. The attribute <bcp14>MUST NOT</bcp14> include a capability multiple times.</t>
        <t>Each capable RADIUS Instance in the RADIUS Proxy Chain <bcp14>SHOULD</bcp14> add the Proxy-Capability Attribute for Access-Request and Accounting-Request packets before forwarding the RADIUS packet to the next RADIUS instance.
Future capabilityes <bcp14>MAY</bcp14> specify capabilities for other RADIUS packet types. The capabilities defined in this document <bcp14>SHOULD</bcp14> only be added for Access-Request and Accounting-Request packets when Proxy-Capabilitiy is used with other RADIUS packets.</t>
        <t>When a capable RADIUS proxy receives a RADIUS packet with the Proxy-Capability Attribute, the RADIUS Proxy <bcp14>SHOULD</bcp14> add its own capabilities to the Attribute if the capability is not yet included. The RADIUS Proxy <bcp14>MUST NOT</bcp14> remove existing capabilities, unless explicitly configured to remove them. As a hint, administrators <bcp14>SHOULD</bcp14> only configure the removal of capabilities when they know that the capability is not honored.</t>
        <t>In this document, we define two capabilities:</t>
        <dl>
          <dt>Capability Response-Delay-Capable</dt>
          <dd>
            <t>The Capability Response-Delay-Capable with value 1 is used to signal that the RADIUS Instance is capable of delaying RADIUS Response packets.</t>
          </dd>
          <dt>Capability Request-Block-Capable</dt>
          <dd>
            <t>The capability Request-Block-Capable with value 2 is used to signal that the RADIUS Instance is capable of blocking RADIUS Requests that match specific criteria and sending an Access-Reject instead on behalf of the home server.</t>
          </dd>
        </dl>
      </section>
      <section anchor="response-delay-attribute">
        <name>Response-Delay Attribute</name>
        <t>The Response-Delay Attribute is used to signal the desire of the home server that sending of the RADIUS response should be delayed for a certain amount.
The Response-Delay Attribute is of type integer as defined in <xref section="3.1" sectionFormat="comma" target="RFC8044"/>.
The value is the delay in milliseconds.</t>
      </section>
      <section anchor="request-block-attribute">
        <name>Request-Block Attribute</name>
        <t>The Request-Block Attribute is used to signal the desire of the home server that future requests that match certain criteria should be rejected by a RADIUS Instance on behalf of the home server.
The Request-Block Attribute is of type tlv as defined in <xref section="3.13" sectionFormat="comma" target="RFC8044"/>.
The sub-attributes are defined as follows:</t>
        <dl>
          <dt>Request-Block-Period</dt>
          <dd>
            <t>This sub-attribute contains the time span in seconds during which requests matching the description should be rejected. The attribute is of type integer as defined in <xref section="3.1" sectionFormat="comma" target="RFC8044"/>.</t>
          </dd>
          <dt>Request-Block-Attributes</dt>
          <dd>
            <t>This sub-attribute contains a list of attribute types that should be used to match authentication requests of the same user. The attribute is of type string as defined in <xref section="3.5" sectionFormat="comma" target="RFC8044"/> and contains a concatenated list of one byte attribute types.</t>
          </dd>
          <dt>Request-Block-Extended-Attribute</dt>
          <dd>
            <t>This sub-attribute contains a reference to a single extended attribute that should be included in the match. The attribute is of type string as defined in <xref section="3.5" sectionFormat="comma" target="RFC8044"/>.</t>
          </dd>
        </dl>
        <section anchor="request-block-attribute-and-request-block-extended-attribute">
          <name>Request-Block-Attribute and Request-Block-Extended-Attribute</name>
          <t>RADIUS attributes are formatted as Type-Length-Value with a fixed one-byte type field.
Since this allows for only 256 attributes, extended attributes have been defined in <xref target="RFC6929"/>.
Additionally, RADIUS has vendor-specific attributes (<xref section="5.26" sectionFormat="comma" target="RFC2865"/> or <xref section="2.4" sectionFormat="comma" target="RFC6929"/>, the header of which may not be known to all implementations.
To still allow to filter on individual extended or vendor-specific attributes which might be unknown to the Enforcing Instance, we need a means to reference these attributes.</t>
          <t>The Request-Block-Attributes sub-attribute is used to reference the "primitive" RADIUS attributes, that is RADIUS attributes that only have the one-byte attribute type.
Since every of these types have a one-byte-length, we can reduce the overhead by concatenating the attribute types, as they are all one byte.</t>
          <t>For the extended or vendor-specific attributes this is not as easy, since the length of the header may vary between the different attributes.
Therefore, we have the Request-Block-Extended-Attribute sub-attribute, which references a single attribute that should be included in the blocklist.
This sub-attribute can be included multiple times in the Request-Block attribute.</t>
        </section>
      </section>
      <section anchor="radius-instance-behavior">
        <name>RADIUS Instance behavior</name>
        <t>TODO - mostly stub or not complete specification, general description of the behavior for every involved party</t>
        <section anchor="radius-proxy">
          <name>RADIUS proxy</name>
          <t>Any RADIUS Instance capable of delaying or blocking <bcp14>SHOULD</bcp14> add the Proxy-Capability attribute to every RADIUS Access-Request they send to a RADIUS server.
If a RADIUS Instance receives a RADIUS request with this attribute, it <bcp14>SHOULD</bcp14> add its own capability, if not present already, to the proxied RADIUS packet and <bcp14>SHOULD NOT</bcp14> remove any other capability.</t>
          <t>Upon reception a RADIUS Proxy needs to decide if it is the Enforcing Instance or not, by looking at the original request.
This decision has to be done individually for the Response-Delay and the Request-Block policy.</t>
          <t>If the received RADIUS response contains a Response-Delay attribute and the original request contained the Response-Delay capability, the RADIUS Proxy <bcp14>SHOULD NOT</bcp14> enforce the policy and instead forward the RADIUS response to the RADIUS client.
If the original request did not contain the Response-Delay capability, the RADIUS Proxy <bcp14>MUST</bcp14> become the Enforcing Instance for the Response-Delay.</t>
          <t>The algorithm for the Request-Block functionality is basically similar, but needs additional considerations in regards to present attributes.
If the received RADIUS response contains a Request-Block attribute and the original request did not contain the Request-Block capability, the RADIUS Proxy <bcp14>MUST</bcp14> become the Enforcing Instance for the Request-Block.
Otherwise, the RADIUS Proxy <bcp14>MUST</bcp14> check the presence of all attributes referenced in the Request-Block, whether or not they are present in the original RADIUS request.
If an attribute was not present in the RADIUS request, the RADIUS Proxy <bcp14>MUST</bcp14> check if the missing attribute was added by the RADIUS Proxy and it is present in RADIUS request the RADIUS proxy sent to the next hop RADIUS server.
In this case the RADIUS Proxy <bcp14>MUST</bcp14> become the Enforcing Instance, since any RADIUS Instances after the current RADIUS Instance cannot enforce the requested blocking, as at least one of the attributes is missing.
If the missing attribute was not added by the RADIUS Proxy, the RADIUS Proxy <bcp14>SHOULD</bcp14> remove the Request-Block attribute before forwarding the packet to the next RADIUS Client.
In this case, the missing attribute was added by a RADIUS Instance not capable of Response-Block and positioned between the current and a later Response-Block capable RADIUS Instance in the RADIUS Proxy Chain of the RADIUS Request.
Since we have no RADIUS-native method to signal this condition back, the best approach to deal with this is to ignore the block request.
By removing the Request-Block attribute from the response, we reduce the load on later RADIUS Instances on the RAIDUS Proxy Chain for the RADIUS Response, since they do not need to perform the attribute checks.
This removes the Response-Block functionality completely without signalling back to the capable RADIUS Instances earlier in the Response Proxy Chain.
There is no easy solution to this problem, but this is considered the best solution compared to complicated signalling mechanisms that would only be beneficial in a limited number of use cases and increase the complexity of implementations.
We therefore rely on the RADIUS server not to request a block based on attributes that may have been added during the proxy chain.
See <xref target="operational_recommendations"/> for further discussion.</t>
        </section>
        <section anchor="enforcing-instance">
          <name>Enforcing Instance</name>
          <t>An Enforcing Instance is in charge of performing the requested action.</t>
          <t>In general, an Enforcing Instance <bcp14>MUST</bcp14> remove the corresponding RADIUS Attribute with the request to delay or block from the RADIUS response before forwarding it to the next RADIUS Client.</t>
          <section anchor="response-delay">
            <name>Response-Delay</name>
            <t>An Enforcing Instance for the Response-Delay <bcp14>MUST</bcp14> delay the response it received from the RADIUS server before forwarding the RADIUS response to the next RADIUS Client.
If the Enforcing Instance is not a RADIUS Proxy, any action that would normally follow the reception of the RADIUS response <bcp14>MUST</bcp14> be delayed, i.e. the Enforcing Instance acts as if the RADIUS response has not been received until the delay timespan has passed.</t>
            <t>An Enforcing Instance <bcp14>MUST NOT</bcp14> retransmit the RADIUS Request again to the next hop RADIUS Server if it already received a RADIUS response with the Response-Delay attribute.
If the Enforcing Instance is a RADIUS Proxy and the RADIUS Client retransmits the RADIUS request, the Enforcing Instance <bcp14>MUST</bcp14> silently discard the retransmission.
This only applies for Enforcing Instances, any other RADIUS Proxy will still follow its normal retransmission policy.</t>
            <t>The Enforcing Instance <bcp14>SHOULD</bcp14> delay the RADIUS response according to the time span in the Response-Delay attributes, however the Enforcing Instance <bcp14>MAY</bcp14> have an upper limit for the delaying response timespan.
By default, this upper limit <bcp14>SHOULD</bcp14> not be less than 10000 milliseconds (10 seconds) and it <bcp14>SHOULD</bcp14> be configurable by the administrator.</t>
            <t><cref anchor="reasoning" source="Janfred">TODO: Reasoning behind the 10 sec delay: A common timeout limit for "response is missing, stop retrying" is 30 seconds, so by keeping the default upper limit below this we ensure that the response gets to the client, but it is delayed. We want to have the time configurable, because delaying responses uses up resources on the server. I delibirately didn't include text that the response should be sent if the ID space is exhausted, because the ID exhaustion may be the reason for the response delay further down the proxy chain, so in order to prevent impact on the later proxy chain, we need to shift the problem as far to the beginning of the proxy chain as possible.</cref></t>
            <t><cref anchor="lower_limit" source="Janfred">TODO: Maybe we should define a lower limit for the upper-limit config, i.e. the upper limit must not be less than 500 milliseconds.</cref></t>
          </section>
          <section anchor="request-block">
            <name>Request-Block</name>
            <t>An Enforcing Instance for the Request-Block <bcp14>MUST</bcp14> reject the RADIUS requests with certain attributes.</t>
            <t>In order to avoid servers from blocking legitimate traffic by setting the block-filter to arbitrary values, the Request-Block is always dependent on the attributes of the original RADIUS requests.</t>
            <t>TODO: From here only stub.</t>
            <t>General algorithm:
* create a list of attributes
* attributes that appear multiple times in the request must be included multiple times in the list as well
* for extended attributes: add every attribute to the list with the prefix in the request-block-extended-attribute (but skip over the length byte in the attribute in the request)
* When a request is received with attributes matching the list (every attributes must be present and match): send an Access-Reject with an Error-Cause attribute set to value TBD4 (Request ratelimited)</t>
            <t>The considerations for upper limit should probably also apply, similar to the response-delay, but with way higher defaults</t>
            <t>Maybe add functionality that the block is automatically timed out after a time when no login has be observed (to free up space), but "reset" the counter if observed again.</t>
          </section>
        </section>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>TODO Security</t>
    </section>
    <section anchor="operational_recommendations">
      <name>Recommendations for Operators</name>
      <t>TODO.</t>
      <t>Elements to consider:
* When should be delayed?
  * nearing ID-Exhaustion due to many ongoing EAP sessions, add small delays
  * on high server load add small delay
  * add a delay for a reject. (FreeRADIUS has the option already, let's push this to the edge instead)
* When should the home server request a block for how long?
  * outer username in EAP wrong - probably hours
  * inner username in EAP does not exist (and has several failed attempts shortly) - few minutes (outer username may stay the same if user changes only inner username)
  * username points to someone that is no longer eligible for access - probably hours
* When should a proxy request a block?
  * repeated requests immediately after a reject with impact on the network - seconds to minutes
  * realm in username is unroutable - minutes to hours
* What are good and bad choices for attributes?
  * good
    * User-Name. Always.
    * Calling-Station-ID
    * Called-Station-ID (i.e. only block phone on this specific access point)
    * NAS-Identifier, NAS-IPAddr, NAS-IPv6Addr (only block from this specific NAS, helpful in roaming scenarios)
    * Operator-Name
  * bad
    * Proxy-State (added by proxies that might not understand it. <bcp14>MUST NOT</bcp14> be used)
    * Any other proxy-specific attribute
    * Only User-Name (may be too broad in case of anonymous identities)</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document will have IANA actions.</t>
      <t>They are still TODO in detail.</t>
      <t>Roughly the following things should be allocated:</t>
      <ul spacing="normal">
        <li>
          <t>Attribute Type (possibly from extended attributes) for Proxy-Capability of type string (Extended-Attribute-1, TBD1)</t>
        </li>
        <li>
          <t>New registry table for for types in the Proxy-Capability attribute
          </t>
          <ul spacing="normal">
            <li>
              <t>0 - reserved</t>
            </li>
            <li>
              <t>1 - Response-Delay-Capable</t>
            </li>
            <li>
              <t>2 - Request-Block-Capable</t>
            </li>
            <li>
              <t>3-125 - reserved for future use</t>
            </li>
            <li>
              <t>126 , 127 - experimental</t>
            </li>
            <li>
              <t>128 - 255 - Extended Capability</t>
            </li>
          </ul>
        </li>
        <li>
          <t>Attribute Type for Response-Delay of type integer (Extended-Attribute-1, TBD2)</t>
        </li>
        <li>
          <t>Attribute Type for Request-Block of type tlv (Extended-Attribute-1, TBD3)</t>
        </li>
        <li>
          <t>New registry table for types in the Response-Delay attributes
          </t>
          <ul spacing="normal">
            <li>
              <t>0 - reserved</t>
            </li>
            <li>
              <t>1 - Request-Block-Period, Type integer, request to stop sending data for this particular user for period of time, time in seconds</t>
            </li>
            <li>
              <t>2 - Request-Block-Attributes, type string</t>
            </li>
            <li>
              <t>3 - Request-Block-Extended-Attribute, type string</t>
            </li>
            <li>
              <t>4-250 - reserved for future use</t>
            </li>
            <li>
              <t>251 - private use</t>
            </li>
            <li>
              <t>252-255 - experimental</t>
            </li>
          </ul>
        </li>
        <li>
          <t>New entry in the registry for Values for RADIUS Attribute 101, Error-Cause Attribute
          </t>
          <ul spacing="normal">
            <li>
              <t>4XX (TBD4) with description "Request ratelimited"</t>
            </li>
          </ul>
        </li>
      </ul>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC2865">
          <front>
            <title>Remote Authentication Dial In User Service (RADIUS)</title>
            <author fullname="C. Rigney" initials="C." surname="Rigney"/>
            <author fullname="S. Willens" initials="S." surname="Willens"/>
            <author fullname="A. Rubens" initials="A." surname="Rubens"/>
            <author fullname="W. Simpson" initials="W." surname="Simpson"/>
            <date month="June" year="2000"/>
            <abstract>
              <t>This document describes a protocol for carrying authentication, authorization, and configuration information between a Network Access Server which desires to authenticate its links and a shared Authentication Server. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2865"/>
          <seriesInfo name="DOI" value="10.17487/RFC2865"/>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC8044">
          <front>
            <title>Data Types in RADIUS</title>
            <author fullname="A. DeKok" initials="A." surname="DeKok"/>
            <date month="January" year="2017"/>
            <abstract>
              <t>RADIUS specifications have used data types for two decades without defining them as managed entities. During this time, RADIUS implementations have named the data types and have used them in attribute definitions. This document updates the specifications to better follow established practice. We do this by naming the data types defined in RFC 6158, which have been used since at least the publication of RFC 2865. We provide an IANA registry for the data types and update the "RADIUS Attribute Types" registry to include a Data Type field for each attribute. Finally, we recommend that authors of RADIUS specifications use these types in preference to existing practice. This document updates RFCs 2865, 3162, 4072, 6158, 6572, and 7268.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8044"/>
          <seriesInfo name="DOI" value="10.17487/RFC8044"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC6929">
          <front>
            <title>Remote Authentication Dial In User Service (RADIUS) Protocol Extensions</title>
            <author fullname="A. DeKok" initials="A." surname="DeKok"/>
            <author fullname="A. Lior" initials="A." surname="Lior"/>
            <date month="April" year="2013"/>
            <abstract>
              <t>The Remote Authentication Dial-In User Service (RADIUS) protocol is nearing exhaustion of its current 8-bit Attribute Type space. In addition, experience shows a growing need for complex grouping, along with attributes that can carry more than 253 octets of data. This document defines changes to RADIUS that address all of the above problems.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6929"/>
          <seriesInfo name="DOI" value="10.17487/RFC6929"/>
        </reference>
      </references>
    </references>
    <?line 316?>

<section anchor="document-status">
      <name>Document Status</name>
      <t>Note to RFC Editor: Remove this section before publication</t>
      <section anchor="change-history">
        <name>Change History</name>
        <t>draft-janfred-radext-radius-congestion-control-01:</t>
        <ul empty="true">
          <li>
            <ul spacing="normal">
              <li>
                <t>no significant changes</t>
              </li>
            </ul>
          </li>
        </ul>
        <t>draft-janfred-radext-radius-congestion-control-00:</t>
        <ul empty="true">
          <li>
            <ul spacing="normal">
              <li>
                <t>Initial draft version</t>
              </li>
            </ul>
          </li>
        </ul>
      </section>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>TODO acknowledge.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
MulfphnkI2YqoBmct3/SLCb/BzN6RWV8UQAA

-->

</rfc>
