draft-ietf-dime-agent-overload-05.txt | draft-ietf-dime-agent-overload-06.txt | |||
---|---|---|---|---|
Diameter Maintenance and Extensions (DIME) S. Donovan | Diameter Maintenance and Extensions (DIME) S. Donovan | |||
Internet-Draft Oracle | Internet-Draft Oracle | |||
Intended status: Standards Track May 19, 2016 | Intended status: Standards Track June 21, 2016 | |||
Expires: November 20, 2016 | Expires: December 23, 2016 | |||
Diameter Agent Overload and the Peer Overload Report | Diameter Agent Overload and the Peer Overload Report | |||
draft-ietf-dime-agent-overload-05.txt | draft-ietf-dime-agent-overload-06.txt | |||
Abstract | Abstract | |||
This specification documents an extension to the Diameter Overload | This specification documents an extension to the Diameter Overload | |||
Indication Conveyance (DOIC) [RFC7683] base solution. The extension | Indication Conveyance (DOIC) [RFC7683] base solution. The extension | |||
defines the Peer overload report type. The initial use case for the | defines the Peer overload report type. The initial use case for the | |||
Peer report is the handling of occurrences of overload of a Diameter | Peer report is the handling of occurrences of overload of a Diameter | |||
agent. | agent. | |||
Requirements | Requirements | |||
skipping to change at page 1, line 40 ¶ | skipping to change at page 1, line 40 ¶ | |||
Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
Drafts is at http://datatracker.ietf.org/drafts/current/. | Drafts is at http://datatracker.ietf.org/drafts/current/. | |||
Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
This Internet-Draft will expire on November 20, 2016. | This Internet-Draft will expire on December 23, 2016. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2016 IETF Trust and the persons identified as the | Copyright (c) 2016 IETF Trust and the persons identified as the | |||
document authors. All rights reserved. | document authors. All rights reserved. | |||
This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
(http://trustee.ietf.org/license-info) in effect on the date of | (http://trustee.ietf.org/license-info) in effect on the date of | |||
publication of this document. Please review these documents | publication of this document. Please review these documents | |||
skipping to change at page 2, line 19 ¶ | skipping to change at page 2, line 19 ¶ | |||
described in the Simplified BSD License. | described in the Simplified BSD License. | |||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
2. Terminology and Abbreviations . . . . . . . . . . . . . . . . 3 | 2. Terminology and Abbreviations . . . . . . . . . . . . . . . . 3 | |||
3. Peer Report Use Cases . . . . . . . . . . . . . . . . . . . . 4 | 3. Peer Report Use Cases . . . . . . . . . . . . . . . . . . . . 4 | |||
3.1. Diameter Agent Overload Use Cases . . . . . . . . . . . . 4 | 3.1. Diameter Agent Overload Use Cases . . . . . . . . . . . . 4 | |||
3.1.1. Single Agent . . . . . . . . . . . . . . . . . . . . 4 | 3.1.1. Single Agent . . . . . . . . . . . . . . . . . . . . 4 | |||
3.1.2. Redundant Agents . . . . . . . . . . . . . . . . . . 5 | 3.1.2. Redundant Agents . . . . . . . . . . . . . . . . . . 5 | |||
3.1.3. Agent Chains . . . . . . . . . . . . . . . . . . . . 6 | 3.1.3. Agent Chains . . . . . . . . . . . . . . . . . . . . 7 | |||
3.2. Diameter Endpoint Use Cases . . . . . . . . . . . . . . . 7 | 3.2. Diameter Endpoint Use Cases . . . . . . . . . . . . . . . 7 | |||
3.2.1. Hop-by-hop Abatement Algorithms . . . . . . . . . . . 7 | 3.2.1. Hop-by-hop Abatement Algorithms . . . . . . . . . . . 8 | |||
4. Interaction Between Host/Realm and Peer Overload Reports . . 8 | 4. Interaction Between Host/Realm and Peer Overload Reports . . 8 | |||
5. Peer Report Behavior . . . . . . . . . . . . . . . . . . . . 8 | 5. Peer Report Behavior . . . . . . . . . . . . . . . . . . . . 8 | |||
5.1. Capability Announcement . . . . . . . . . . . . . . . . . 8 | 5.1. Capability Announcement . . . . . . . . . . . . . . . . . 8 | |||
5.1.1. Reacting Node Behavior . . . . . . . . . . . . . . . 8 | 5.1.1. Reacting Node Behavior . . . . . . . . . . . . . . . 8 | |||
5.1.2. Reporting Node Behavior . . . . . . . . . . . . . . . 9 | 5.1.2. Reporting Node Behavior . . . . . . . . . . . . . . . 9 | |||
5.2. Peer Report Overload Report Handling . . . . . . . . . . 10 | 5.2. Peer Overload Report Handling . . . . . . . . . . . . . . 10 | |||
5.2.1. Overload Control State . . . . . . . . . . . . . . . 10 | 5.2.1. Overload Control State . . . . . . . . . . . . . . . 10 | |||
5.2.2. Reporting Node Maintenance of Peer Report OCS . . . . 11 | 5.2.2. Reporting Node Maintenance of Peer Report OCS . . . . 11 | |||
5.2.3. Reacting Node Maintenance of Peer Report OCS . . . . 11 | 5.2.3. Reacting Node Maintenance of Peer Report OCS . . . . 11 | |||
5.2.4. Peer Report Reporting Node Behavior . . . . . . . . . 13 | 5.2.4. Peer Report Reporting Node Behavior . . . . . . . . . 12 | |||
5.2.5. Peer Report Reacting Node Behavior . . . . . . . . . 13 | 5.2.5. Peer Report Reacting Node Behavior . . . . . . . . . 12 | |||
6. Peer Report AVPs . . . . . . . . . . . . . . . . . . . . . . 14 | 6. Peer Report AVPs . . . . . . . . . . . . . . . . . . . . . . 13 | |||
6.1. OC-Supported-Features AVP . . . . . . . . . . . . . . . . 14 | 6.1. OC-Supported-Features AVP . . . . . . . . . . . . . . . . 13 | |||
6.1.1. OC-Feature-Vector . . . . . . . . . . . . . . . . . . 14 | 6.1.1. OC-Feature-Vector . . . . . . . . . . . . . . . . . . 14 | |||
6.1.2. OC-Peer-Algo . . . . . . . . . . . . . . . . . . . . 15 | 6.1.2. OC-Peer-Algo . . . . . . . . . . . . . . . . . . . . 14 | |||
6.2. OC-OLR AVP . . . . . . . . . . . . . . . . . . . . . . . 15 | 6.2. OC-OLR AVP . . . . . . . . . . . . . . . . . . . . . . . 14 | |||
6.2.1. OC-Report-Type AVP . . . . . . . . . . . . . . . . . 15 | 6.2.1. OC-Report-Type AVP . . . . . . . . . . . . . . . . . 15 | |||
6.3. SourceID . . . . . . . . . . . . . . . . . . . . . . . . 16 | 6.3. SourceID . . . . . . . . . . . . . . . . . . . . . . . . 15 | |||
6.4. Attribute Value Pair flag rules . . . . . . . . . . . . . 16 | 6.4. Attribute Value Pair flag rules . . . . . . . . . . . . . 15 | |||
7. IANA Considerations . . . . . . . . . . . . . . . . . . . . 16 | 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . 16 | |||
7.1. AVP codes . . . . . . . . . . . . . . . . . . . . . . . . 16 | 7.1. AVP codes . . . . . . . . . . . . . . . . . . . . . . . . 16 | |||
7.2. New registries . . . . . . . . . . . . . . . . . . . . . 16 | 7.2. New registries . . . . . . . . . . . . . . . . . . . . . 16 | |||
8. Security Considerations . . . . . . . . . . . . . . . . . . . 17 | 8. Security Considerations . . . . . . . . . . . . . . . . . . . 16 | |||
9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 17 | 9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 16 | |||
10. Normative References . . . . . . . . . . . . . . . . . . . . 17 | 10. Normative References . . . . . . . . . . . . . . . . . . . . 16 | |||
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 18 | Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 17 | |||
1. Introduction | 1. Introduction | |||
This specification documents an extension to the Diameter Overload | ||||
Indication Conveyance (DOIC) [RFC7683] base solution. The extension | ||||
defines the Peer overload report type. The initial use case for the | ||||
Peer report is the handling of occurrences of overload of a Diameter | ||||
agent. | ||||
This document defines the behavior of Diameter nodes when Diameter | This document defines the behavior of Diameter nodes when Diameter | |||
agents enter an overload condition and send an overload report | agents enter an overload condition and send an overload report | |||
requesting a reduction of traffic. It also defines new overload | requesting a reduction of traffic. It also defines new overload | |||
report type, the Peer overload report type, that is used for handling | report type, the Peer overload report type, that is used for handling | |||
of agent overload conditions. The Peer overload report type is | of agent overload conditions. The Peer overload report type is | |||
defined in a generic fashion so that it can also be used for other | defined in a generic fashion so that it can also be used for other | |||
Diameter overload scenaios. | Diameter overload scenaios. | |||
The base Diameter overload specification [RFC7683] addresses the | The base Diameter overload specification [RFC7683] addresses the | |||
handling of overload when a Diameter endpoint (a Diameter Client or | handling of overload when a Diameter endpoint (a Diameter Client or | |||
skipping to change at page 3, line 45 ¶ | skipping to change at page 4, line 4 ¶ | |||
This document defines a new overload report type to communicate | This document defines a new overload report type to communicate | |||
occurrences of agent overload. This report type works for the "Loss" | occurrences of agent overload. This report type works for the "Loss" | |||
overload mitigation algorithm defined in [RFC7683] and is expected to | overload mitigation algorithm defined in [RFC7683] and is expected to | |||
work for other overload abatement algorithms defined in extensions to | work for other overload abatement algorithms defined in extensions to | |||
the DOIC solution. | the DOIC solution. | |||
2. Terminology and Abbreviations | 2. Terminology and Abbreviations | |||
Diameter Node | Diameter Node | |||
A RFC6733 Diameter Client, an RFC6733 Diameter Server, and RFC6733 | A RFC6733 Diameter Client, an RFC6733 Diameter Server, and RFC6733 | |||
Diameter Agent. | Diameter Agent. | |||
Diameter Endpoint | Diameter Endpoint | |||
An RFC6733 Diameter Client and RFC6733 Diameter Server. | An RFC6733 Diameter Client and RFC6733 Diameter Server. | |||
Reporting Node | Reporting Node | |||
A DOIC Node that sends and overload report in a Diameter answer | A DOIC Node that sends an overload report in a Diameter answer | |||
message. | message. | |||
Reacting Node | Reacting Node | |||
A DOIC Node that receives and acts on a Diameter overload report. | A DOIC Node that receives and acts on a DOIC overload report. | |||
DIOC Node | DOIC Node | |||
A Diameter Node that supports the DOIC solution defined in | A Diameter Node that supports the DOIC solution defined in | |||
[RFC7683]. | [RFC7683]. | |||
3. Peer Report Use Cases | 3. Peer Report Use Cases | |||
This section outlines representative use cases for the peer report | This section outlines representative use cases for the peer report | |||
used to communicate agent overload. | used to communicate agent overload. | |||
There are two primary classes of use cases currently identified, | There are two primary classes of use cases currently identified, | |||
those involving the overload of agents and those involving overload | those involving the overload of agents and those involving overload | |||
of Diameter endpoints (Diameter Clients and Diameter Servers) that | of Diameter endpoints. In both cases the goal is to use an overload | |||
wish to use an overload algorithm suited controlling traffic sent | algorithm that controls traffic sent towards peers. | |||
from a peer. | ||||
3.1. Diameter Agent Overload Use Cases | 3.1. Diameter Agent Overload Use Cases | |||
The peer report needs to support the following use cases. | The peer report needs to support the following use cases. | |||
3.1.1. Single Agent | 3.1.1. Single Agent | |||
This use case is illustrated in Figure 1. In this case, the client | This use case is illustrated in Figure 1. In this case, the client | |||
sends all traffic through the single agent. If there is a failure in | sends all traffic through the single agent. If there is a failure in | |||
the agent then the client is unable to send Diameter traffic toward | the agent then the client is unable to send Diameter traffic toward | |||
skipping to change at page 5, line 24 ¶ | skipping to change at page 5, line 30 ¶ | |||
In both of these cases, the occurrence of overload in the single | In both of these cases, the occurrence of overload in the single | |||
agent must by handled by the client in a similar fashion as if the | agent must by handled by the client in a similar fashion as if the | |||
client were handling the overload of a directly connected server. | client were handling the overload of a directly connected server. | |||
When the agent becomes overloaded it will insert an overload report | When the agent becomes overloaded it will insert an overload report | |||
in answer messages flowing to the client. This overload report will | in answer messages flowing to the client. This overload report will | |||
contain a requested reduction in the amount of traffic sent to the | contain a requested reduction in the amount of traffic sent to the | |||
agent. The client will apply overload abatement behavior as defined | agent. The client will apply overload abatement behavior as defined | |||
in the base Diameter overload specification [RFC7683] or the | in the base Diameter overload specification [RFC7683] or the | |||
extension draft that defines the indicated overload abatement | extension draft that defines the indicated overload abatement | |||
algorithm. This will result in the throtting of the abated traffic | algorithm. This will result in the throttling of the abated traffic | |||
that would have been sent to the agent, as there is no alternative | that would have been sent to the agent, as there is no alternative | |||
route, with the appropriate indication given to the service request | route. An appropriate error response is sent back to the originator | |||
that resulted in the need for the Diameter transaction. | of the request. | |||
3.1.2. Redundant Agents | 3.1.2. Redundant Agents | |||
Figure 3 and Figure 4 illustrate a second, and more likely, type of | Figure 3 and Figure 4 illustrate a second, and more likely, type of | |||
deployment scenario involving agents. In both of these cases, the | deployment scenario involving agents. In both of these cases, the | |||
client has Diameter connections to two agents. | client has Diameter connections to two agents. | |||
Figure 3 illustrates a client that has a primary connection to one of | Figure 3 illustrates a client that has a primary connection to one of | |||
the agents (agent a1) and a secondary connection to the other agent | the agents (agent a1) and a secondary connection to the other agent | |||
(agent a2). In this scenario, under normal circumstances, the client | (agent a2). In this scenario, under normal circumstances, the client | |||
skipping to change at page 6, line 7 ¶ | skipping to change at page 6, line 17 ¶ | |||
+-+ / +--+\ /+-+ | +-+ / +--+\ /+-+ | |||
|c|- x | |c|- x | |||
+-+ . +--+/ \+-+ | +-+ . +--+/ \+-+ | |||
..|a2|---|s| | ..|a2|---|s| | |||
+--+ +-+ | +--+ +-+ | |||
Figure 3 | Figure 3 | |||
The second case, in Figure 4, illustrates the case where the | The second case, in Figure 4, illustrates the case where the | |||
connections to the agents are both actively used. In this case, the | connections to the agents are both actively used. In this case, the | |||
client will have local distribution policy to determine the | client will have local distribution policy to determine the traffic | |||
percentage of the traffic sent through each client. | sent through each client. | |||
+--+ +-+ | +--+ +-+ | |||
--|a1|---|s| | --|a1|---|s| | |||
+-+ / +--+\ /+-+ | +-+ / +--+\ /+-+ | |||
|c|- x | |c|- x | |||
+-+ \ +--+/ \+-+ | +-+ \ +--+/ \+-+ | |||
--|a2|---|s| | --|a2|---|s| | |||
+--+ +-+ | +--+ +-+ | |||
Figure 4 | Figure 4 | |||
In the case where one of the agents in the above scenarios become | In the case where one of the agents in the above scenario becomes | |||
overloaded, the client should reduce the amount of traffic sent to | overloaded, the client should reduce the amount of traffic sent to | |||
the overloaded agent by the amount requested. This traffic should | the overloaded agent by the amount requested. This traffic should | |||
instead be routed through the non-overloaded agent. For example, | instead be routed through the non-overloaded agent. For example, | |||
assume that the overloaded agent requests a reduction of 10 percent. | assume that the overloaded agent requests a reduction of 10 percent. | |||
The client should send 10 percent of the traffic that would have been | The client should send 10 percent of the traffic that would have been | |||
routed to the overloaded agent through the non-overloaded agent. | routed to the overloaded agent through the non-overloaded agent. | |||
When the client has an active and a standby connection to the two | When the client has an active and a standby connection to the two | |||
agents then an alternative strategy for responding to an overload | agents then an alternative strategy for responding to an overload | |||
report from an agent is to change to standby connection to active and | report from an agent is to change to standby connection to active and | |||
route all traffic through the new active connection. | route all traffic through the new active connection. | |||
In the case where both agents are reporting overload, the client may | In the case where both agents are reporting overload, the client may | |||
need to start decreasing the total traffic sent to the agents. This | need to start decreasing the total traffic sent to the agents. This | |||
would be done in a similar fashion as discussed in section 3.1. The | would be done in a similar fashion as discussed in Section 3.1.1 The | |||
amount of traffic depends on the combined reduction requested by the | amount of traffic depends on the combined reduction requested by the | |||
two agents. | two agents. | |||
3.1.3. Agent Chains | 3.1.3. Agent Chains | |||
There are also deployment scenarios where there can be multiple | There are also deployment scenarios where there can be multiple | |||
Diameter Agents between Diameter Clients and Diameter Servers. | Diameter Agents between Diameter Clients and Diameter Servers. An | |||
Examples of this type of deployment include when there are edge | example of this type of deployment include when there are edge agents | |||
agents between Diameter networks. Another example of this type of | between Diameter networks. | |||
deployment is when there are multiple sets of servers, each | ||||
supporting a subset of the Diameter traffic. | ||||
Figure 5 illustrates one such network deployment case. Note that | Figure 5 illustrates one such network deployment case. Note that | |||
while this figure shows a maximum of two agents being involved in a | while this figure shows a maximum of two agents being involved in a | |||
Diameter transaction, it is possible that more than two agents could | Diameter transaction, it is possible that more than two agents could | |||
be in the path of a transaction. | be in the path of a transaction. | |||
+---+ +---+ +-+ | +---+ +---+ +-+ | |||
--|a11|-----|a21|---|s| | --|a11|-----|a21|---|s| | |||
+-+ / +---+ \ / +---+\ /+-+ | +-+ / +---+ \ / +---+\ /+-+ | |||
|c|- x x | |c|- x x | |||
skipping to change at page 7, line 24 ¶ | skipping to change at page 7, line 36 ¶ | |||
Handling of overload of one or both of agents a11 or a12 in this case | Handling of overload of one or both of agents a11 or a12 in this case | |||
is equivalent to that discussed in section 2.2. | is equivalent to that discussed in section 2.2. | |||
Overload of agents a21 and a22 must be handled by the previous hop | Overload of agents a21 and a22 must be handled by the previous hop | |||
agents. As such, agents a11 and a12 must handle the overload | agents. As such, agents a11 and a12 must handle the overload | |||
mitigation logic when receiving an agent overload report from agents | mitigation logic when receiving an agent overload report from agents | |||
a21 and a22. | a21 and a22. | |||
The handling of peer overload reports is similar to that discussed in | The handling of peer overload reports is similar to that discussed in | |||
section 2.2. If the overload can be addressed using diversion then | Section 3.1.2. If the overload can be addressed using diversion then | |||
this approach should be taken. | this approach should be taken. | |||
If both of the agents have requested a reduction in traffic then the | If both of the agents have requested a reduction in traffic then the | |||
previous hop agent must start throttling the appropriate number of | previous hop agent must start throttling the appropriate number of | |||
transactions. When throttling requests, an agent uses the same error | transactions. When throttling requests, an agent uses the same error | |||
responses as defined in the base DOIC specification [RFC7683]. | responses as defined in the base DOIC specification [RFC7683]. | |||
3.2. Diameter Endpoint Use Cases | 3.2. Diameter Endpoint Use Cases | |||
This section outlines use cases for the peer overload report | This section outlines use cases for the peer overload report | |||
skipping to change at page 8, line 13 ¶ | skipping to change at page 8, line 26 ¶ | |||
abatement of overload conditions. | abatement of overload conditions. | |||
4. Interaction Between Host/Realm and Peer Overload Reports | 4. Interaction Between Host/Realm and Peer Overload Reports | |||
It is possible that both an agent and an end-point in the path of a | It is possible that both an agent and an end-point in the path of a | |||
transaction are overloaded at the same time. When this occurs, | transaction are overloaded at the same time. When this occurs, | |||
Diameter entities need to handle both overload reports. In this | Diameter entities need to handle both overload reports. In this | |||
scenario the reacting node should first handle the throttling of the | scenario the reacting node should first handle the throttling of the | |||
overloaded host or realm. Any messages that survive throttling due | overloaded host or realm. Any messages that survive throttling due | |||
to host or realm reports should then go through abatement for the | to host or realm reports should then go through abatement for the | |||
peer overload report. | peer overload report. In this scenario, when doing abatement on the | |||
PEER report, the reacting node SHOULD take into consideration the | ||||
number of messages already throttled by the handling of the HOST/ | ||||
REALM report abatement. | ||||
Note: The goal is to avoid traffic oscillations that might result | ||||
from throttling of messages for both the HOST/REALM overload | ||||
reports and the PEER overload reports. This is especially a | ||||
concern if both reports are of type LOSS. | ||||
5. Peer Report Behavior | 5. Peer Report Behavior | |||
This section defines the normative behavior associated with the Peer | This section defines the normative behavior associated with the Peer | |||
Report extension to the DOIC solution. | Report extension to the DOIC solution. | |||
5.1. Capability Announcement | 5.1. Capability Announcement | |||
5.1.1. Reacting Node Behavior | 5.1.1. Reacting Node Behavior | |||
When sending a Diameter request a DOIC node that supports the | When sending a Diameter request a DOIC node that supports the | |||
OC_PEER_REPORT feature MUST include an OC-Supported-Features AVP with | OC_PEER_REPORT feature MUST include an OC-Supported-Features AVP with | |||
an OC-Feature-Vector AVP with the OC_PEER_REPORT bit set. | an OC-Feature-Vector AVP with the OC_PEER_REPORT bit set. | |||
Note: The sender of a request can be a Diameter Client or Diameter | ||||
Server that originates the Diamter request or a Diameter Agent | ||||
that relays the request. | ||||
Support for the OC_PEER_REPORT feature does not impact the logic for | ||||
setting of other feature bits in the OC-Feature-Vector AVP. | ||||
When sending a request a DOIC node that supports the OC_PEER_REPORT | When sending a request a DOIC node that supports the OC_PEER_REPORT | |||
feature MUST include a SourceID AVP in the OC-Supported-Features AVP | feature MUST include a SourceID AVP in the OC-Supported-Features AVP | |||
with its own DiameterIdentity. | with its own DiameterIdentity. | |||
Note: This allows the DOIC nodes in the path of the request to | Note: This allows the DOIC nodes in the path of the request to | |||
determine if the indication of support came from a Diameter peer | determine if the indication of support came from a Diameter peer | |||
or if the request traversed a node that does not support the | or if the request traversed a node that does not support the | |||
OC_PEER_REPORT feature. | OC_PEER_REPORT feature. | |||
When relaying a request that includes a SourceID AVP in the OC- | When an agent relays a request that includes a SourceID AVP in the | |||
Supported-Features AVP, a DOIC node that supuports the OC_PEER_REPORT | OC-Supported-Features AVP, a DOIC node that supports the | |||
feature must remove the received SourceID AVP and replace it with a | OC_PEER_REPORT feature MUST remove the received SourceID AVP and | |||
SourceID AVP containing its own Diameter identity. | replace it with a SourceID AVP containing its own Diameter identity. | |||
5.1.2. Reporting Node Behavior | 5.1.2. Reporting Node Behavior | |||
When receiving a request a DOIC node that supports the OC_PEER_REPORT | When receiving a request a DOIC node that supports the OC_PEER_REPORT | |||
feature MUST update transaction state with an indication of whether | feature MUST update transaction state with an indication of whether | |||
or not the peer from which the request was received supports the | or not the peer from which the request was received supports the | |||
OC_PEER_REPORT feature. | OC_PEER_REPORT feature. | |||
Note: The transaction state is used when the DOIC node is acting | Note: The transaction state is used when the DOIC node is acting | |||
as a peer-report reporting node and needs send OC-OLR reports of | as a peer-report reporting node and needs send OC-OLR reports of | |||
type PEER_REPORT in answer messages. The peer overload reports | type PEER_REPORT in answer messages. The peer overload reports | |||
are only included in answer messages being sent to peers that | are only included in answer messages being sent to peers that | |||
support the OC_PEER_REPORT feature. | support the OC_PEER_REPORT feature. | |||
The following are indications that the peer does not support the | ||||
OC_PEER_REPORT feature: | ||||
The request does not contain an OC-Supported-Features AVP. | ||||
The received request contains an OC-Supported-Features AVP with no | ||||
OC-Feature-Vector. | ||||
The received request contains an OC-Supported-Features AVP with a | ||||
OC-Feature-Vector with the OC_PEER_REPORT feature bit cleared. | ||||
The received request contains an OC-Supported-Features AVP with a | ||||
OC-Feature-Vector with the OC_PEER_REPORT feature bit set but with | ||||
a SourceID AVP with a DiameterIdentity that does not match the | ||||
DiameterIdentity of the peer from which the request was received. | ||||
The peer supports the OC_PEER_REPORT feature if the received request | The peer supports the OC_PEER_REPORT feature if the received request | |||
contains an OC-Supported-Features AVP with the OC-Feature-Vector with | contains an OC-Supported-Features AVP with the OC-Feature-Vector with | |||
the OC_PEER_REPORT feature bit set and with a SourceID AVP with a | the OC_PEER_REPORT feature bit set and with a SourceID AVP with a | |||
Diameter ID that matches the DiameterIdentity of the peer from which | Diameter ID that matches the DiameterIdentity of the peer from which | |||
the request was received. | the request was received. | |||
When relaying an answer message, a reporting node that supports the | When an agent relays an answer message, a reporting node that | |||
OC_PEER_REPORT feature MUST strip any SourceID AVP from the OC- | supports the OC_PEER_REPORT feature MUST strip any SourceID AVP from | |||
Supported-Features AVP. | the OC-Supported-Features AVP. | |||
When sending an answer message, a reporting node that supports the | When sending an answer message, a reporting node that supports the | |||
OC_PEER_REPORT feature MUST determine if the peer to which the answer | OC_PEER_REPORT feature MUST determine if the peer to which the answer | |||
is to be sent supports the OC_PEER_REPORT feature. | is to be sent supports the OC_PEER_REPORT feature. | |||
If the peer supports the OC_PEER_REPORT feature then the reporting | If the peer supports the OC_PEER_REPORT feature then the reporting | |||
node MUST indicate support for the feature in the Supported-Features | node MUST indicate support for the feature in the OC-Supported- | |||
AVP. | Features AVP. | |||
If the peer supports the OC_PEER_REPORT feature then the reporting | If the peer supports the OC_PEER_REPORT feature then the reporting | |||
node MUST insert the SourceID AVP in the OC-Supported-Features AVP in | node MUST insert the SourceID AVP in the OC-Supported-Features AVP in | |||
the answer message. | the answer message. | |||
If the peer supports the OC_PEER_REPORT feature then the reporting | If the peer supports the OC_PEER_REPORT feature then the reporting | |||
node MUST insert the OC-Peer-Algo AVP in the OC-Supported-Features | node MUST insert the OC-Peer-Algo AVP in the OC-Supported-Features | |||
AVP. The OC-Peer-Algo AVP MUST indicate the overload abatement | AVP. The OC-Peer-Algo AVP MUST indicate the overload abatement | |||
algorithm that the reporting node wants the reacting nodes to use | algorithm that the reporting node wants the reacting nodes to use | |||
should the reporting node send a peer overload report as a result of | should the reporting node send a peer overload report as a result of | |||
becoming overloaded. | becoming overloaded. | |||
5.2. Peer Report Overload Report Handling | 5.2. Peer Overload Report Handling | |||
This section defines the behavior for the handling of overload | This section defines the behavior for the handling of overload | |||
reports of type peer. | reports of type peer. | |||
5.2.1. Overload Control State | 5.2.1. Overload Control State | |||
This section describes the Overload Control State (OCS) that might be | This section describes the Overload Control State (OCS) that might be | |||
maintained by both the peer report reporting node and the peer report | maintained by both the peer report reporting node and the peer report | |||
reacting node. | reacting node. | |||
This is an extension of the OCS handling defined in [RFC7683]. | ||||
5.2.1.1. Reporting Node Peer Report OCS | 5.2.1.1. Reporting Node Peer Report OCS | |||
A DOIC Node that supports the OC_PEER_REPORT feature SHOULD maintain | A DOIC Node that supports the OC_PEER_REPORT feature SHOULD maintain | |||
Reporting Node Peer Report OCS. This is used to record overload | Reporting Node OCS, as defined in [RFC7683] and extended here. | |||
events and build overload reports at the reporting node. | ||||
If different abatement specific contents are sent to each peer then | If different abatement specific contents are sent to each peer then | |||
the reporting node MUST maintain a separate peer node peer report OCS | the reporting node MUST maintain a separate reporting node peer | |||
entry per peer to which a peer overload report is sent. | report OCS entry per peer to which a peer overload report is sent. | |||
Note: The rate overload abatement algorithm allows for different | Note: The rate overload abatement algorithm allows for different | |||
rates to be sent to each peer. | rates to be sent to each peer. | |||
The Reporting Node Peer Report OCS entry MAY include the following | ||||
information (the actual information stored is an implementation | ||||
decision): | ||||
o Sequence number | ||||
o Validity Duration | ||||
o Expiration Time | ||||
o Abatement Algorithm | ||||
o Algorithm specific input data (for example, the Reduction | ||||
Percentage for the Loss Abatement Algorithm) | ||||
5.2.1.2. Reacting Node Peer Report OCS | 5.2.1.2. Reacting Node Peer Report OCS | |||
A DOIC node that supports the OC_PEER_REPORT feature SHOULD maintain | In addition to OCS maintained as defined in [RFC7683], a reacting | |||
Reacting Node Peer Report OCS for each peer with which it | node that supports the OC_PEER_REPORT feature maintains the following | |||
communicates. This is used to record overload reports received from | OCS per supported Diameter application: | |||
peer nodes. | ||||
A Reacting Node Peer Report OCS entry is identified by the | ||||
DiameterIdentity of the peer as communicated during the RFC6733 | ||||
defined Capability Exchange procedure. | ||||
The Reacting Node Peer Report OCS entry MAY include the following | A peer-type OCS entry for each peer to which it sends requests. | |||
information (the actual information stored is an implementation | ||||
decision): | ||||
o Sequence number | A peer-type OCS entry is identified by the pair of Application-ID and | |||
the peer's DiameterIdentity. | ||||
o Expiration Time | The peer-type OCS entry include the following information (the actual | |||
information stored is an implementation decision): | ||||
o Abatement Algorithm | Sequence number (as received in the OC-OLR AVP). | |||
o Algorithm specific input data (for example, the Reduction | Time of expiry (derived from OC-Validity-Duration AVP received in | |||
Percentage for the Loss Abatement Algorithm) | the OC-OLR AVP and time of reception of the message carrying OC- | |||
OLR AVP). | ||||
5.2.2. Reporting Node Maintenance of Peer Report OCS | Selected abatement algorithm (as received in the OC-Supported- | |||
Features AVP). | ||||
A reporting node SHOULD create a new Reporting Node Peer Report OCS | Input data that is abatement algorithm specific (as received in | |||
entry Section 5.2.1.1 in an overload condition and sending a peer | the OC-OLR AVP -- for example, OC-Reduction-Percentage for the | |||
overload report to a peer for the first time. | loss abatement algorithm). | |||
If the reporting node knows that there are no reacting nodes | 5.2.2. Reporting Node Maintenance of Peer Report OCS | |||
supporting the OC_PEER_REPORT feature then the reporting node can | ||||
choose to not create OCS entries. | ||||
All rules for managing the reporting node OCS entries defined in | All rules for managing the reporting node OCS entries defined in | |||
[RFC7683] apply to the peer report. | [RFC7683] apply to the peer report. | |||
5.2.3. Reacting Node Maintenance of Peer Report OCS | 5.2.3. Reacting Node Maintenance of Peer Report OCS | |||
When a reacting node receives an OC-OLR AVP with a report type of | When a reacting node receives an OC-OLR AVP with a report type of | |||
peer it MUST determine if the report was generated by the Diameter | peer it MUST determine if the report was generated by the Diameter | |||
peer from which the report was received. | peer from which the report was received. | |||
If the DiameterID in the SourceID contained in the OLR matches the | If a reacting node receives an OC-OLR AVP of type peer and the | |||
DiameterIdentity of the peer from which the request was received then | SourceID matches the ID of the Diameter peer from which the request | |||
the report was received from a Diameter peer. | was received then the report was received from a Diameter peer. | |||
If a reacting node receives an OC-OLR AVP of type peer and the | If a reacting node receives an OC-OLR AVP of type peer and the | |||
SourceID does not match the ID of the Diameter peer from which the | SourceID does not match the ID of the Diameter peer from which the | |||
request was received then the reacting node MUST ignore the overload | request was received then the reacting node MUST ignore the overload | |||
report. | report. | |||
In all cases, if the reacting node is a relay then it MUST strip the | ||||
OC-OLR AVP from the message. | ||||
If the Peer Report OLR was received from a Diameter peer then the | If the Peer Report OLR was received from a Diameter peer then the | |||
reacting node MUST determine if it is for an existing or new overload | reacting node MUST determine if it is for an existing or new overload | |||
condition. | condition. | |||
The OLR is for an existing overload condition if the reacting node | The OLR is for an existing overload condition if the reacting node | |||
has an OCS that matches the received OLR. For a peer report-type | has an OCS that matches the received OLR. For a peer report-type, | |||
this means the DiameterIdentity received in the SourceID AVP matches | this means it matches the Application-ID and the peer's | |||
the DiameterIdentity of an existing peer report OLR. | DiameterIdentity in an existing OCS entry. | |||
If the OLR is for an existing overload condition then it MUST | If the OLR is for an existing overload condition then it MUST | |||
determine if the OLR is a retransmission or an update to the existing | determine if the OLR is a retransmission or an update to the existing | |||
OLR. | OLR. | |||
If the sequence number for the received OLR is greater than the | If the sequence number for the received OLR is greater than the | |||
sequence number stored in the matching OCS entry then the reacting | sequence number stored in the matching OCS entry then the reacting | |||
node MUST update the matching OCS entry. | node MUST update the matching OCS entry. | |||
If the sequence number for the received OLR is less than or equal to | If the sequence number for the received OLR is less than or equal to | |||
skipping to change at page 13, line 18 ¶ | skipping to change at page 12, line 31 ¶ | |||
5.2.4. Peer Report Reporting Node Behavior | 5.2.4. Peer Report Reporting Node Behavior | |||
When there is an existing reporting node peer report OCS entry, the | When there is an existing reporting node peer report OCS entry, the | |||
reporting node MUST include an OC-OLR AVP with a report type of peer | reporting node MUST include an OC-OLR AVP with a report type of peer | |||
using the contents of the reporting node peer report OCS entry in all | using the contents of the reporting node peer report OCS entry in all | |||
answer messages sent by the reporting node to peers that support the | answer messages sent by the reporting node to peers that support the | |||
OC_PEER_REPORT feature. | OC_PEER_REPORT feature. | |||
The reporting node determines if a peer supports the | The reporting node determines if a peer supports the | |||
OC_PEER_REPORT feature based on the indication recorded in the | OC_PEER_REPORT feature based on the indication recorded in the | |||
reporting nodes transaction state. | reporting node's transaction state. | |||
The reporting node MUST include its DiameterIdentity in the SourceID | The reporting node MUST include its DiameterIdentity in the SourceID | |||
AVP in the OC-OLR AVP. This is used by DOIC nodes that support the | AVP in the OC-OLR AVP. This is used by DOIC nodes that support the | |||
OC_PEER_REPORT feature to determine if the report was received from a | OC_PEER_REPORT feature to determine if the report was received from a | |||
Diameter peer. | Diameter peer. | |||
The reporting agent must follow all other overload reporting node | The reporting agent must follow all other overload reporting node | |||
behaviors outlined in the DOIC specification. | behaviors outlined in the DOIC specification. | |||
5.2.5. Peer Report Reacting Node Behavior | 5.2.5. Peer Report Reacting Node Behavior | |||
A reacting node supporting this extension MUST support the receipt of | A reacting node supporting this extension MUST support the receipt of | |||
multiple overload reports in a single message. The message might | multiple overload reports in a single message. The message might | |||
include a host overload report, a realm overload report and/or a peer | include a host overload report, a realm overload report and/or a peer | |||
overload report. | overload report. | |||
When a reacting node sends a request it MUST determine if that | When a reacting node sends a request it MUST determine if that | |||
request matches an active OCS. | request matches an active OCS. | |||
If the request matches and active OCS then the reacting node MUST | In all cases, if the reacting node is an agent then it MUST strip the | |||
Peer Report OC-OLR AVP from the message. | ||||
If the request matches an active OCS then the reacting node MUST | ||||
apply abatement treatment on the request. The abatement treatment | apply abatement treatment on the request. The abatement treatment | |||
applied depends on the abatement algorithm indicated in the OCS. | applied depends on the abatement algorithm indicated in the OCS. | |||
For peer overload reports, the preferred abatement treatment is | For peer overload reports, the preferred abatement treatment is | |||
diversion. As such, the reacting node SHOULD attempt to divert | diversion. As such, the reacting node SHOULD attempt to divert | |||
requests identified as needing abatement to other peers. | requests identified as needing abatement to other peers. | |||
If there is not sufficient capacity to divert abated traffic then the | If there is not sufficient capacity to divert abated traffic then the | |||
reacting node MUST throttle the necessary requests to fit within the | reacting node MUST throttle the necessary requests to fit within the | |||
available capacity of the peers able to handle the requests. | available capacity of the peers able to handle the requests. | |||
If the abatement treatment results in throttling of the request and | If the abatement treatment results in throttling of the request and | |||
if the reacting node is an agent then the agent MUST send an | if the reacting node is an agent then the agent MUST send an | |||
appropriate error as defined in [RFC7683]. | appropriate error as defined in [RFC7683]. | |||
In the case that the OCS entry validity duration expires or has a | In the case that the OCS entry validity duration expires or has a | |||
validity duration of zero ("0"), meaning that it the reporting node | validity duration of zero ("0"), meaning that if the reporting node | |||
has explicitly signaled the end of the overload condition then | has explicitly signaled the end of the overload condition then | |||
abatement associated with the overload abatement MUST be ended in a | abatement associated with the overload abatement MUST be ended in a | |||
controlled fashion. | controlled fashion. | |||
6. Peer Report AVPs | 6. Peer Report AVPs | |||
6.1. OC-Supported-Features AVP | 6.1. OC-Supported-Features AVP | |||
This extension adds a new feature to the OC-Feature-Vector AVP. This | This extension adds a new feature to the OC-Feature-Vector AVP. This | |||
feature indication shows support for handling of peer overload | feature indication shows support for handling of peer overload | |||
reports. Peer overload reports are used by agents to indicate the | reports. Peer overload reports are used by agents to indicate the | |||
need for overload abatement handling by the agents peer. | need for overload abatement handling by the agent's peer. | |||
A supporting node must also include the SourceID AVP in the OC- | A supporting node must also include the SourceID AVP in the OC- | |||
Supported-Features capability AVP. | Supported-Features capability AVP. | |||
This AVP contains the Diameter Identity of the node that supports the | This AVP contains the Diameter Identity of the node that supports the | |||
OC_PEER_REPORT feature. This AVP is used to determine if support for | OC_PEER_REPORT feature. This AVP is used to determine if support for | |||
the peer overload report is in an adjacent node. The value of this | the peer overload report is in an adjacent node. The value of this | |||
AVP should be the same Diameter identity used as part of the CER/CEA | AVP should be the same Diameter identity used as part of the CER/CEA | |||
base Diameter capabilities exchange. | base Diameter capabilities exchange. | |||
This extension also adds the OC-Peer-Algo AVP to the OC-Supported- | This extension also adds the OC-Peer-Algo AVP to the OC-Supported- | |||
Features AVP. This AVP is used by a reporting node to indicate the | Features AVP. This AVP is used by a reporting node to indicate the | |||
abatement algorithm it will use for peer overload reports. | abatement algorithm it will use for peer overload reports. | |||
OC-Supported-Features ::= < AVP Header: TBD1 > | OC-Supported-Features ::= < AVP Header: 621 > | |||
[ OC-Feature-Vector ] | [ OC-Feature-Vector ] | |||
[ SourceID ] | [ SourceID ] | |||
[ OC-Peer-Algo] | [ OC-Peer-Algo] | |||
* [ AVP ] | * [ AVP ] | |||
6.1.1. OC-Feature-Vector | 6.1.1. OC-Feature-Vector | |||
The peer report feature defines a new feature bit is added for the | The peer report feature defines a new feature bit is added for the | |||
OC-Feature-Vector AVP. | OC-Feature-Vector AVP. | |||
skipping to change at page 15, line 12 ¶ | skipping to change at page 14, line 28 ¶ | |||
When this flag is set by a DOIC node it indicates that the DOIC | When this flag is set by a DOIC node it indicates that the DOIC | |||
node supports the peer overload report type. | node supports the peer overload report type. | |||
6.1.2. OC-Peer-Algo | 6.1.2. OC-Peer-Algo | |||
The OC-Peer-Algo AVP (AVP code TBD1) is of type Unsigned64 and | The OC-Peer-Algo AVP (AVP code TBD1) is of type Unsigned64 and | |||
contains a 64 bit flags field of announced capabilities of a DOIC | contains a 64 bit flags field of announced capabilities of a DOIC | |||
node. The value of zero (0) is reserved. | node. The value of zero (0) is reserved. | |||
Feature bits defined for the OC-Feature-Vector AVP and associated | Feature bits defined for the OC-Feature-Vector AVP and associated | |||
with overload abatement algorithms are reused in for this AVP. | with overload abatement algorithms are reused for this AVP. | |||
6.2. OC-OLR AVP | 6.2. OC-OLR AVP | |||
This extension makes no changes to the SequenceNumber or | This extension makes no changes to the SequenceNumber or | |||
ValidityDuration AVPs in the OC-OLR AVP. These AVPs are also be used | ValidityDuration AVPs in the OC-OLR AVP. These AVPs are also be used | |||
in peer overload reports. | in peer overload reports. | |||
The OC_PEER_REPORT feature extends the base Diameter overload | The OC_PEER_REPORT feature extends the base Diameter overload | |||
specification by defining a new overload report type of "peer". See | specification by defining a new overload report type of "peer". See | |||
section [7.6] in [RFC7683] for a description of the OC-Report-Type | section [7.6] in [RFC7683] for a description of the OC-Report-Type | |||
AVP. | AVP. | |||
The overload report must also include the Diameter identity of the | The overload report MUST also include the Diameter identity of the | |||
agent that generated the report. This is necessary to handle the | agent that generated the report. This is necessary to handle the | |||
case where there is a non supporting agent between the reporting node | case where there is a non supporting agent between the reporting node | |||
and the reacting node. Without the indication of the agent that | and the reacting node. Without the indication of the agent that | |||
generated the overload request, the reacting node could erroneously | generated the overload request, the reacting node could erroneously | |||
assume that the report applied to the non supporting node. This | assume that the report applied to the non-supporting node. This | |||
could, in turn, result in unnecessary traffic being either | could, in turn, result in unnecessary traffic being either | |||
redistributed or throttled. | redistributed or throttled. | |||
The SourceID AVP is used in the OC-OLR AVP to carry this | The SourceID AVP is used in the OC-OLR AVP to carry this | |||
DiameterIdentity. | DiameterIdentity. | |||
OC-OLR ::= < AVP Header: TBD2 > | OC-OLR ::= < AVP Header: 623 > | |||
< OC-Sequence-Number > | < OC-Sequence-Number > | |||
< OC-Report-Type > | < OC-Report-Type > | |||
[ OC-Reduction-Percentage ] | [ OC-Reduction-Percentage ] | |||
[ OC-Validity-Duration ] | [ OC-Validity-Duration ] | |||
[ SourceID ] | [ SourceID ] | |||
* [ AVP ] | * [ AVP ] | |||
6.2.1. OC-Report-Type AVP | 6.2.1. OC-Report-Type AVP | |||
The following new report type is defined for the OC-Report-Type AVP. | The following new report type is defined for the OC-Report-Type AVP. | |||
skipping to change at page 16, line 14 ¶ | skipping to change at page 15, line 30 ¶ | |||
endpoint then the overload report should be stripped and not acted | endpoint then the overload report should be stripped and not acted | |||
upon. | upon. | |||
6.3. SourceID | 6.3. SourceID | |||
The SourceID AVP (AVP code TBD2) is of type DiameterIdentity and is | The SourceID AVP (AVP code TBD2) is of type DiameterIdentity and is | |||
inserted by a Diameter node to indicate the source of the AVP in | inserted by a Diameter node to indicate the source of the AVP in | |||
which it is a part. | which it is a part. | |||
In the case of peer reports, the SourceID AVP indicates the node that | In the case of peer reports, the SourceID AVP indicates the node that | |||
support for this feature (in the OC-Supported-Features AVP) or the | supports this feature (in the OC-Supported-Features AVP) or the node | |||
node that generates an overload with a report type of peer (in the | that generates an overload with a report type of peer (in the OC-OLR | |||
OC-OLR AVP). | AVP). | |||
It contains the DiameterIdentity of the inserting node. This is used | It contains the DiameterIdentity of the inserting node. This is used | |||
by other Diameter nodes to determine the node that inserted the | by other Diameter nodes to determine the node that inserted the | |||
enclosing AVP that contains the SourceID AVP. | enclosing AVP that contains the SourceID AVP. | |||
6.4. Attribute Value Pair flag rules | 6.4. Attribute Value Pair flag rules | |||
+---------+ | +---------+ | |||
|AVP flag | | |AVP flag | | |||
|rules | | |rules | | |||
+----+----+ | +----+----+ | |||
AVP Section | |MUST| | AVP Section | |MUST| | |||
Attribute Name Code Defined Value Type |MUST| NOT| | Attribute Name Code Defined Value Type |MUST| NOT| | |||
+--------------------------------------------------------+----+----+ | +--------------------------------------------------------+----+----+ | |||
|SourceID TBD1 x.x DiameterIdentity | | V | | |OC-Peer-Algo TBD1 x.x Unsigned64 | | V | | |||
|OC-Peer-Algo TBD2 x.x Unsigned64 | | V | | |SourceID TBD2 x.x DiameterIdentity | | V | | |||
+--------------------------------------------------------+----+----+ | +--------------------------------------------------------+----+----+ | |||
7. IANA Considerations | 7. IANA Considerations | |||
7.1. AVP codes | 7.1. AVP codes | |||
New AVPs defined by this specification are listed in Section 6. All | New AVPs defined by this specification are listed in Section 6. All | |||
AVP codes are allocated from the 'Authentication, Authorization, and | AVP codes are allocated from the 'Authentication, Authorization, and | |||
Accounting (AAA) Parameters' AVP Codes registry. | Accounting (AAA) Parameters' AVP Codes registry. | |||
skipping to change at page 17, line 37 ¶ | skipping to change at page 17, line 7 ¶ | |||
comprehensive Diameter overload solution in draft-roach-dime- | comprehensive Diameter overload solution in draft-roach-dime- | |||
overload-ctrl-03.txt. | overload-ctrl-03.txt. | |||
Ben Campbell for his insights and review of early versions of this | Ben Campbell for his insights and review of early versions of this | |||
document. | document. | |||
10. Normative References | 10. Normative References | |||
[I-D.ietf-dime-doic-rate-control] | [I-D.ietf-dime-doic-rate-control] | |||
Donovan, S. and E. Noel, "Diameter Overload Rate Control", | Donovan, S. and E. Noel, "Diameter Overload Rate Control", | |||
draft-ietf-dime-doic-rate-control-01 (work in progress), | draft-ietf-dime-doic-rate-control-03 (work in progress), | |||
March 2015. | March 2016. | |||
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
Requirement Levels", BCP 14, RFC 2119, | Requirement Levels", BCP 14, RFC 2119, | |||
DOI 10.17487/RFC2119, March 1997, | DOI 10.17487/RFC2119, March 1997, | |||
<http://www.rfc-editor.org/info/rfc2119>. | <http://www.rfc-editor.org/info/rfc2119>. | |||
[RFC5226] Narten, T. and H. Alvestrand, "Guidelines for Writing an | [RFC5226] Narten, T. and H. Alvestrand, "Guidelines for Writing an | |||
IANA Considerations Section in RFCs", BCP 26, RFC 5226, | IANA Considerations Section in RFCs", BCP 26, RFC 5226, | |||
DOI 10.17487/RFC5226, May 2008, | DOI 10.17487/RFC5226, May 2008, | |||
<http://www.rfc-editor.org/info/rfc5226>. | <http://www.rfc-editor.org/info/rfc5226>. | |||
End of changes. 58 change blocks. | ||||
139 lines changed or deleted | 108 lines changed or added | |||
This html diff was produced by rfcdiff 1.45. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |