RFC 7660
Diameter Congestion and Filter Attributes
RFC 7660: Diameter Congestion and Filter Attributes β¨
Okay bestie, this one is from L. Bertz, S. Manning, and B. Hirschman at Sprint π It's a Standards Track doc, dated October 2015, with ISSN 2070-1721. The title block lists no Obsoletes or Updates entries, so it doesn't replace or change any other RFC π
Internet Engineering Task Force (IETF) πΈ Request for Comments: 7660 πΈ Category: Standards Track πΈ ISSN: 2070-1721
Abstract
okay so this doc defines some optional Diameter attributes that help manage networks using Explicit Congestion Notification (ECN) or Diameter traffic filters π¦ The new attributes make traffic identification better, add ECN support, and keep filter admin minimal, which is lowkey iconic π₯
[RFC5777] is the one that defines the Filter-Rule Attribute Value Pair (AVP). It's giving extensible: it handles classification, conditions, and actions. BUT it doesn't support traffic identification for packets using ECN as defined in RFC 3168, and it doesn't give specific actions for flows described by the Filter-Rule that are congested π
Also, a Filter-Rule can describe several flows without saying exactly how many. Accounting apps don't capture flow count or other data like packets, so admins are left without useful info about whether the filter is actually working or is even the right one π
The optional attributes in this document are forward and backwards compatible with RFC 5777 β¨
Status of This Memo
This is an Internet Standards Track document π
This doc is a product of the Internet Engineering Task Force (IETF). It represents the consensus of the IETF community, got public review, and was approved for publication by the Internet Engineering Steering Group (IESG). More info on Internet Standards is in Section 2 of RFC 5741 π
For the current status, any errata, and how to give feedback, check http://www.rfc-editor.org/info/rfc7660 π¦
Copyright Notice
Copyright (c) 2015 IETF Trust and the persons identified as the document authors. All rights reserved π
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License π
Table of Contents π§
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3
3. ECN-IP-Codepoint, Congestion-Treatment and Filter Attributes . 4
3.1. ECN-IP-Codepoint AVP . . . . . . . . . . . . . . . . . . . 4
3.2. Congestion-Treatment AVP . . . . . . . . . . . . . . . . . 4
3.3. Flow-Count AVP . . . . . . . . . . . . . . . . . . . . . . 5
3.4. Packet-Count AVP . . . . . . . . . . . . . . . . . . . . . 5
4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 5
4.1. AVP Codes . . . . . . . . . . . . . . . . . . . . . . . . 5
5. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
5.1. Classifier Example . . . . . . . . . . . . . . . . . . . . 6
5.2. Diameter Credit Control (CC) with Congestion Information . 6
6. Security Considerations . . . . . . . . . . . . . . . . . . . 8
7. Normative References . . . . . . . . . . . . . . . . . . . . . 8
Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . . 9
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 9
1. Introduction β¨
okay so two optional AVPs related to Explicit Congestion Notification (ECN) [RFC3168] are specified here π¦ The first one gives direct support for filtering ECN-marked traffic [RFC3168], and the second one lets you define alternate traffic treatment when congestion is experienced π₯
This doc also defines two optional AVPs, Flow-Count and Packet-Count, for conveying flow info within the Diameter protocol [RFC6733] π They were found to be useful for a wide range of applications. They give a way to share info about the group of flows described by the Filter-Rule, IPFilterRule, or other Diameter traffic filters πΈ
The semantics and encoding of all AVPs are in Section 3 π
These AVPs are needed by some congestion-management functions to figure out how many flows are congested, and admins use them to see the impact of filter definitions π
More parameters may be defined in future docs as the need comes up π All parameters are defined as Diameter-encoded Attribute Value Pairs (AVPs), described using a modified version of the Augmented Backus-Naur Form (ABNF), see [RFC6733]. The data types are also taken from [RFC6733] β¨
2. Terminology
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC2119 [RFC2119] π§
3. ECN-IP-Codepoint, Congestion-Treatment, and Filter Attributes π
3.1. ECN-IP-Codepoint AVP
The ECN-IP-Codepoint AVP (AVP Code 628) is of type Enumerated and specifies the ECN codepoint values to match in the IP header π¦
Value | Binary | Keyword | References
-----------------------------------------------------------------
0 | 00 | Not-ECT (Not ECN-Capable Transport)| [RFC3168]
1 | 01 | ECT(1) (ECN-Capable Transport) | [RFC3168]
2 | 10 | ECT(0) (ECN-Capable Transport) | [RFC3168]
3 | 11 | CE (Congestion Experienced) | [RFC3168]
When this AVP is used for classification in the Filter-Rule, it MUST be part of the Classifier Grouped AVP as defined in RFC 5777 π₯
3.2. Congestion-Treatment AVP
The Congestion-Treatment AVP (AVP Code 629) is of type Grouped πΈ It indicates how to treat traffic IP (5-tuple) flow(s) when congestion is detected. Detection of congestion can be based on receiving IP packets with the Congestion Experience (CE) codepoint set (see [RFC3168]), or by any other administratively defined criteria β¨
A Filter-Rule may contain a Classifier that describes one or many 5-tuples per RFC 5777. This treatment applies to all packets associated to all 5-tuples (flows) captured by the Filter-Rule π
If the Congestion-Treatment AVP is absent, the treatment of the congested traffic is left to the discretion of the node performing quality-of-service (QoS) treatment π
Congestion-Treatment ::= < AVP Header: 629 >
{ Treatment-Action }
[ QoS-Profile-Template ]
[ QoS-Parameters ]
* [ AVP ]
Treatment-Action, QoS-Profile-Template, and QoS-Parameters are defined in RFC 5777 π The Congestion-Treatment AVP is an action and MUST be an attribute of the Filter-Rule Grouped AVP as defined in RFC 5777 π
3.3. Flow-Count AVP
The Flow-Count AVP (AVP Code 630) is of type Unsigned64 π§
It indicates the number of protocol-specific flows. The protocol is determined by the filter (e.g., IPFilterRule, Filter-Id, etc.) π¦
3.4. Packet-Count AVP
The Packet-Count AVP (AVP Code 631) is of type Unsigned64 π
It indicates the number of protocol-specific packets. The protocol is determined by the filter (e.g., IPFilterRule, Filter-Id, etc.) π
Part 1 wraps up right here, bestie π Section 4 (IANA Considerations) and everything after it is coming up in part 2 π β¨
5.2. Diameter Credit Control (CC) with Congestion Information
okay so Diameter nodes using Credit Control can use the Congestion-Treatment AVP to trigger specific actions when congestion hits π¨ this is giving Excess-Treatment vibes, bestie π whether a node can even notice congestion depends on the AVPs in the Filter-Rule and Diameter Client, and it works the same way as spotting 'Excess' for Excess-Treatment β¨ if Excess-Treatment [RFC5777] conditions or Congestion-Treatment conditions happen, Diameter Clients may autonomously send Credit-Control Requests (CCRs) during the Service Delivery session as interim events π¦ the whole flow is in Figure 1 below, so look at it, it's iconic π
Service Element
End User (CC Client) CC Server
| | |
|(1) Service Request | |
|-------------------->| |
| |(2) CCR (Initial, |
| | QoS-Resources(QoS-Desired)) |
| |--------------------------------->|
| |(3) CCA (Granted-Units, |
| | QoS-Resources(QoS-Authorized))|
| |<---------------------------------|
|(4) Service Delivery | |
|<------------------->| |
| (5) Congestion Detected |
| (6) Congestion Treatment Occurs |
| |(7) CCR (Termination, Used-Units, |
| | Flow-Count, Packet-Count, |
| | QoS-Resources(QoS-Delivered)) |
| |--------------------------------->|
| |(8) CCA |
| |<-------------------------------->|
| | |
| | |
|(9) End of Service | |
|-------------------->| |
| |(10)CCR (Termination, Used-Units, |
| | Flow-Count, Packet-Count, |
| | QoS-Resources(QoS-Delivered)) |
| |--------------------------------->|
| |(11) CCA |
| |<---------------------------------|
Figure 1: Example of a Diameter Credit Control with
Congestion Information
so the 'Used-Service-Units' in the RFC 5777 examples is usually a Service-Units, Time-Units, or Byte-Count AVP π which is kinda not enough to show what the network is actually doing, and it doesn't tell throughput apart from good-put (good or quality throughput) even when the filters hint that throughput is good or bad π
Flow-Count and Packet-Count AVPs from this document could be sent with a CCR when the trigger is related to Congestion-Treatment π§ this gives the CC Server a better look at what kind of congested traffic is going on, which means smarter decisions and charging β¨ sending these AVPs under any condition lets you do rudimentary traffic profiling no matter what the network is up to π like, low byte counts per packet is a web traffic vibe, and high byte counts per packet with only a few flows might be video π¬ this enriched reporting also gives you relief from Deep Packet Inspection load and keeps you from losing info as traffic gets more and more encrypted π
some services, like streaming ones, limit the number of flows (Flow-Count) instead of other units, like Byte-Count πΈ in that case, the Flow-Count AVP may be used in place of Service-Units π
6. Security Considerations
okay this section is SERIOUS bestie so read it properly π«Ά this document is an extension of RFC 5777 that adds a new filter parameter applied to ECN as defined by [RFC3168] π₯ it also defines a brand new Grouped AVP that says what action to take if congestion is detected π the Grouped AVP reuses attributes that were already defined in RFC 5777 π since these are extensions to RFC 5777, they don't bring any new security concerns, phew π
the Flow-Count and Packet-Count AVPs can be sent along with the usual AVPs, like Bytes, Time, and Service units, during accounting activities described in the base protocol [RFC6733] or in other Diameter applications π but these new AVPs give out more information that can be privacy sensitive π how sensitive it is depends directly on the traffic the filters capture and on the reports that come from them π narrow filtering creates the highest level of privacy sensitivity, but it's way too resource intensive to use widely on big networks π the twist is that better reporting actually means less deep inspection is needed to figure out traffic for lots of congestion management stuff, as noted in Section 5.2 β¨
if an administrator can apply congestion actions without having to report them to a Diameter application, they should use the Congestion-Treatment AVP π¨ bonus: it also cuts down on Diameter traffic during congestion events π¦
the Security Considerations of the Diameter protocol itself are covered in RFC 6733 [RFC6733] π§ using the AVPs defined in this document MUST take into consideration the security issues and requirements of the Diameter base protocol π₯ no skipping this one, periodt π
7. Normative References
here's the reference list, all of it, nothing dropped π
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997,
<http://www.rfc-editor.org/info/rfc2119>.
[RFC3168] Ramakrishnan, K., Floyd, S., and D. Black, "The Addition
of Explicit Congestion Notification (ECN) to IP",
RFC 3168, DOI 10.17487/RFC3168, September 2001,
<http://www.rfc-editor.org/info/rfc3168>.
[RFC6733] Fajardo, V., Ed., Arkko, J., Loughney, J., and G. Zorn,
Ed., "Diameter Base Protocol", RFC 6733,
DOI 10.17487/RFC6733, October 2012,
<http://www.rfc-editor.org/info/rfc6733>.
[RFC5777] Korhonen, J., Tschofenig, H., Arumaithurai, M., Jones, M.,
Ed., and A. Lior, "Traffic Classification and Quality of
Service (QoS) Attributes for Diameter", RFC 5777,
DOI 10.17487/RFC5777, February 2010,
<http://www.rfc-editor.org/info/rfc5777>.
Acknowledgements π«Ά
we'd like to give a huge shoutout to Avi Lior for his guidance and feedback while this spec was being built π he's literally the MVP β¨
Authors' Addresses π
Lyle Bertz
Sprint
6220 Sprint Parkway
Overland Park, KS 66251
United States
Email: lyleb551144@gmail.com
Serge Manning
Sprint
6220 Sprint Parkway
Overland Park, KS 66251
United States
Email: sergem913@gmail.com
Brent Hirschman
Email: Brent.Hirschman@gmail.com
that's the whole RFC, bestie ππ β¨ the people who wrote this are absolutely iconic π
π¦ where this page comes from
- ietf: rfc7660 2015-10
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms