| < draft-ietf-dime-agent-overload-04.txt | draft-ietf-dime-agent-overload-05.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 March 18, 2016 | Intended status: Standards Track May 19, 2016 | |||
| Expires: September 19, 2016 | Expires: November 20, 2016 | |||
| Diameter Agent Overload and the Peer Overload Report | Diameter Agent Overload and the Peer Overload Report | |||
| draft-ietf-dime-agent-overload-04.txt | draft-ietf-dime-agent-overload-05.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 September 19, 2016. | This Internet-Draft will expire on November 20, 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 39 ¶ | skipping to change at page 2, line 39 ¶ | |||
| 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 . . . . . . . . . 13 | |||
| 5.2.5. Peer Report Reacting Node Behavior . . . . . . . . . 13 | 5.2.5. Peer Report Reacting Node Behavior . . . . . . . . . 13 | |||
| 6. Peer Report AVPs . . . . . . . . . . . . . . . . . . . . . . 14 | 6. Peer Report AVPs . . . . . . . . . . . . . . . . . . . . . . 14 | |||
| 6.1. OC-Supported-Features AVP . . . . . . . . . . . . . . . . 14 | 6.1. OC-Supported-Features AVP . . . . . . . . . . . . . . . . 14 | |||
| 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 . . . . . . . . . . . . . . . . . . . . 15 | |||
| 6.2. OC-OLR AVP . . . . . . . . . . . . . . . . . . . . . . . 15 | 6.2. OC-OLR AVP . . . . . . . . . . . . . . . . . . . . . . . 15 | |||
| 6.2.1. OC-Report-Type AVP . . . . . . . . . . . . . . . . . 15 | 6.2.1. OC-Report-Type AVP . . . . . . . . . . . . . . . . . 15 | |||
| 6.3. OC-SourceID . . . . . . . . . . . . . . . . . . . . . . . 16 | 6.3. SourceID . . . . . . . . . . . . . . . . . . . . . . . . 16 | |||
| 6.4. Attribute Value Pair flag rules . . . . . . . . . . . . . 16 | 6.4. Attribute Value Pair flag rules . . . . . . . . . . . . . 16 | |||
| 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 . . . . . . . . . . . . . . . . . . . 17 | |||
| 9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 17 | 9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 17 | |||
| 10. Normative References . . . . . . . . . . . . . . . . . . . . 17 | 10. Normative References . . . . . . . . . . . . . . . . . . . . 17 | |||
| Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 18 | Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 18 | |||
| 1. Introduction | 1. Introduction | |||
| skipping to change at page 8, line 36 ¶ | skipping to change at page 8, line 36 ¶ | |||
| 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 | Note: The sender of a request can be a Diameter Client or Diameter | |||
| Server that originates the Diamter request or a Diameter Agent | Server that originates the Diamter request or a Diameter Agent | |||
| that relays the request. | that relays the request. | |||
| Support for the OC_PEER_REPORT feature does not impact the logic for | Support for the OC_PEER_REPORT feature does not impact the logic for | |||
| setting of other feature bits in the OC-Feature-Vector AVP. | 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 an OC-SourceID AVP in the OC-Supported-Features | feature MUST include a SourceID AVP in the OC-Supported-Features AVP | |||
| 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 an OC-SourceID AVP in the OC- | When relaying a request that includes a SourceID AVP in the OC- | |||
| Supported-Features AVP, a DOIC node that supuports the OC_PEER_REPORT | Supported-Features AVP, a DOIC node that supuports the OC_PEER_REPORT | |||
| feature must remove the received OC-SourceID AVP and replace it with | feature must remove the received SourceID AVP and replace it with a | |||
| an OC-SourceID AVP containing its own Diameter identity. | 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 | |||
| skipping to change at page 9, line 31 ¶ | skipping to change at page 9, line 31 ¶ | |||
| The request does not contain an OC-Supported-Features AVP. | The request does not contain an OC-Supported-Features AVP. | |||
| The received request contains an OC-Supported-Features AVP with no | The received request contains an OC-Supported-Features AVP with no | |||
| OC-Feature-Vector. | OC-Feature-Vector. | |||
| The received request contains an OC-Supported-Features AVP with a | The received request contains an OC-Supported-Features AVP with a | |||
| OC-Feature-Vector with the OC_PEER_REPORT feature bit cleared. | OC-Feature-Vector with the OC_PEER_REPORT feature bit cleared. | |||
| The received request contains an OC-Supported-Features AVP with a | The received request contains an OC-Supported-Features AVP with a | |||
| OC-Feature-Vector with the OC_PEER_REPORT feature bit set but with | OC-Feature-Vector with the OC_PEER_REPORT feature bit set but with | |||
| an OC-SourceID AVP with a DiameterIdentity that does not match the | a SourceID AVP with a DiameterIdentity that does not match the | |||
| DiameterIdentity of the peer from which the request was received. | 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 an OC-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 relaying an answer message, a reporting node that supports the | |||
| OC_PEER_REPORT feature MUST strip any SourceID AVP from the OC- | OC_PEER_REPORT feature MUST strip any SourceID AVP from the OC- | |||
| Supported-Features AVP. | 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 Supported-Features | |||
| AVP. | 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 OC-SourceID AVP in the OC-Supported-Features AVP | node MUST insert the SourceID AVP in the OC-Supported-Features AVP in | |||
| 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 Report Overload Report Handling | |||
| skipping to change at page 12, line 9 ¶ | skipping to change at page 12, line 9 ¶ | |||
| 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 the DiameterID in the SourceID contained in the OLR matches the | |||
| DiameterIdentity of the peer from which the request was received then | DiameterIdentity of the peer from which the request was received then | |||
| the report was received from a Diameter peer. | the report was received from a Diameter peer. | |||
| If a reacting node receives an OC-OLR AVP of type peer and the OC- | 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 | In all cases, if the reacting node is a relay then it MUST strip the | |||
| OC-OLR AVP from the message. | 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. | |||
| skipping to change at page 13, line 20 ¶ | skipping to change at page 13, line 20 ¶ | |||
| 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 nodes transaction state. | |||
| The reporting node MUST include its DiameterIdentity in the OC- | The reporting node MUST include its DiameterIdentity in the SourceID | |||
| SourceID AVP in the OC-OLR AVP. This is used by DOIC nodes that | AVP in the OC-OLR AVP. This is used by DOIC nodes that support the | |||
| support the OC_PEER_REPORT feature to determine if the report was | OC_PEER_REPORT feature to determine if the report was received from a | |||
| 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. | |||
| skipping to change at page 14, line 20 ¶ | skipping to change at page 14, line 20 ¶ | |||
| 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 agents peer. | |||
| A supporting node must also include the OC-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: TBD1 > | |||
| [ OC-Feature-Vector ] | [ OC-Feature-Vector ] | |||
| [ OC-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. | |||
| OC_PEER_REPORT (0x0000000000000010) | OC_PEER_REPORT (0x0000000000000010) | |||
| skipping to change at page 15, line 34 ¶ | skipping to change at page 15, line 34 ¶ | |||
| 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 OC-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: TBD2 > | |||
| < OC-Sequence-Number > | < OC-Sequence-Number > | |||
| < OC-Report-Type > | < OC-Report-Type > | |||
| [ OC-Reduction-Percentage ] | [ OC-Reduction-Percentage ] | |||
| [ OC-Validity-Duration ] | [ OC-Validity-Duration ] | |||
| [ OC-Source-ID ] | [ 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. | |||
| PEER_REPORT 2 The overload treatment should apply to all requests | PEER_REPORT 2 The overload treatment should apply to all requests | |||
| bound for the peer identified in the overload report. If the peer | bound for the peer identified in the overload report. If the peer | |||
| identified in the overload report is not a peer to the reacting | identified in the overload report is not a peer to the reacting | |||
| 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. OC-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 the DOIC node that either indicates support for this | inserted by a Diameter node to indicate the source of the AVP in | |||
| feature (in the OC-Supported-Features AVP) or that generates an OC- | which it is a part. | |||
| OLR AVP with a report type of peer. | ||||
| It contains the Diameter Identity of the inserting node. This is | In the case of peer reports, the SourceID AVP indicates the node that | |||
| used by other DOIC nodes to determine if the a peer indicated support | support for this feature (in the OC-Supported-Features AVP) or the | |||
| this feature or inserted the peer report. | node that generates an overload with a report type of peer (in the | |||
| OC-OLR AVP). | ||||
| It contains the DiameterIdentity of the inserting node. This is used | ||||
| by other Diameter nodes to determine the node that inserted the | ||||
| 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| | |||
| +--------------------------------------------------------+----+----+ | +--------------------------------------------------------+----+----+ | |||
| |OC-SourceID TBD1 x.x DiameterIdentity | | V | | |SourceID TBD1 x.x DiameterIdentity | | V | | |||
| |OC-Peer-Algo TBD2 x.x Unsigned64 | | V | | |OC-Peer-Algo TBD2 x.x Unsigned64 | | 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. | |||
| End of changes. 20 change blocks. | ||||
| 31 lines changed or deleted | 35 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/ | ||||