RFC 5866
Diameter Quality-of-Service Application
RFC 5866: Diameter Quality-of-Service Application π
okay so this one is the Diameter Quality-of-Service Application spec, and it's giving "how do the network and the servers talk about QoS without chaos" π
Here's the title block tea β
- Series: Internet Engineering Task Force (IETF) π
- Number: RFC 5866
- Category: Standards Track (so it's an official Internet Standard, periodt β¨)
- ISSN: 2070-1721
- Date: May 2010 π
- Editor: D. Sun, Ed. (Alcatel-Lucent) and G. Zorn, Ed. (Network Zen) π«Ά
- Other authors: P. McCann (Motorola Labs), H. Tschofenig (Nokia Siemens Networks), T. Tsou (Huawei), and A. Doria (Lulea University of Technology) π
- Obsoletes / Updates: the title block doesn't list anything here π
Abstract
okay so the abstract is the quick hype: this doc lays out the framework, the messages, and the procedures for the Diameter Quality-of-Service (QoS) application π¦ It lets network elements chat with Diameter servers when they're handing out QoS resources in the network. The big deal is that two modes are defined, called "Pull" and "Push" π₯
Status of This Memo
this is an Internet Standards Track document, so it's officially legit β¨
it's a product of the Internet Engineering Task Force (IETF) and it represents the consensus of the IETF community π«Ά It got public review and was approved for publication by the Internet Engineering Steering Group (IESG). If you want more deets on Internet Standards, check Section 2 of RFC 5741 π
for the current status, any errata, and where to send feedback, head to http://www.rfc-editor.org/info/rfc5866 π
Copyright Notice
Copyright (c) 2010 IETF Trust and the persons identified as the document authors. All rights reserved. πΈ
this doc is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) as they stand on the publication date π Please actually read those, because they spell out your rights and restrictions for this document, and that's not something to skip π
if you pull Code Components out of this document, they have to include Simplified BSD License text, as described in Section 4.e of the Trust Legal Provisions, and they come with no warranty, as described in the Simplified BSD License π§
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3
3. Framework . . . . . . . . . . . . . . . . . . . . . . . . . . 5
3.1. Network Element Functional Model . . . . . . . . . . . . . 7
3.2. Implications of Endpoint QoS Capabilities . . . . . . . . 8
3.2.1. Endpoint Categories . . . . . . . . . . . . . . . . . 8
3.2.2. Interaction Modes between the Authorizing Entity
and Network Element . . . . . . . . . . . . . . . . . 9
3.3. Authorization Schemes . . . . . . . . . . . . . . . . . . 10
3.3.1. Pull Mode Schemes . . . . . . . . . . . . . . . . . . 10
3.3.2. Push Mode Schemes . . . . . . . . . . . . . . . . . . 13
3.4. QoS Application Requirements . . . . . . . . . . . . . . . 14
4. QoS Application Session Establishment and Management . . . . . 17
4.1. Parties Involved . . . . . . . . . . . . . . . . . . . . . 17
4.2. Session Establishment . . . . . . . . . . . . . . . . . . 18
4.2.1. Session Establishment for Pull Mode . . . . . . . . . 18
4.2.2. Session Establishment for Push Mode . . . . . . . . . 21
4.2.3. Discovery and Selection of Peer Diameter QoS
Application Node . . . . . . . . . . . . . . . . . . . 24
4.3. Session Re-Authorization . . . . . . . . . . . . . . . . . 24
4.3.1. Client-Side Initiated Re-Authorization . . . . . . . . 25
4.3.2. Server-Side Initiated Re-Authorization . . . . . . . . 26
4.4. Session Termination . . . . . . . . . . . . . . . . . . . 28
4.4.1. Client-Side Initiated Session Termination . . . . . . 28
4.4.2. Server-Side Initiated Session Termination . . . . . . 28
5. QoS Application Messages . . . . . . . . . . . . . . . . . . . 29
5.1. QoS-Authorization Request (QAR) . . . . . . . . . . . . . 30
5.2. QoS-Authorization-Answer (QAA) . . . . . . . . . . . . . . 31
5.3. QoS-Install Request (QIR) . . . . . . . . . . . . . . . . 32
5.4. QoS-Install Answer (QIA) . . . . . . . . . . . . . . . . . 32
5.5. Re-Auth-Request (RAR) . . . . . . . . . . . . . . . . . . 33
5.6. Re-Auth-Answer (RAA) . . . . . . . . . . . . . . . . . . . 34
6. QoS Application State Machine . . . . . . . . . . . . . . . . 34
6.1. Supplemented States for Push Mode . . . . . . . . . . . . 34
7. QoS Application AVPs . . . . . . . . . . . . . . . . . . . . . 35
7.1. Reused Base Protocol AVPs . . . . . . . . . . . . . . . . 36
7.2. QoS Application-Defined AVPs . . . . . . . . . . . . . . . 36
8. Accounting . . . . . . . . . . . . . . . . . . . . . . . . . . 37
9. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
9.1. Example Call Flow for Pull Mode (Success Case) . . . . . . 38
9.2. Example Call Flow for Pull Mode (Failure Case) . . . . . . 40
9.3. Example Call Flow for Push Mode . . . . . . . . . . . . . 43
10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 45
10.1. AVP Codes . . . . . . . . . . . . . . . . . . . . . . . . 45
10.2. Application IDs . . . . . . . . . . . . . . . . . . . . . 45
10.3. Command Codes . . . . . . . . . . . . . . . . . . . . . . 46
11. Security Considerations . . . . . . . . . . . . . . . . . . . 46
12. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 47
13. Contributors . . . . . . . . . . . . . . . . . . . . . . . . . 47
14. References . . . . . . . . . . . . . . . . . . . . . . . . . . 48
14.1. Normative References . . . . . . . . . . . . . . . . . . . 48
14.2. Informative References . . . . . . . . . . . . . . . . . . 48
1. Introduction β¨
okay bestie, the intro says this doc covers the framework, messages, and procedures for the Diameter [RFC3588] Quality-of-Service (QoS) application π¦ The vibe is that Network Elements (NEs) chat with Diameter servers whenever they need to allocate QoS resources in the network π
there are two modes. In the first one, called "Pull" mode, the network element asks the Diameter server for QoS authorization. This happens because of some trigger, like a QoS signaling protocol, that shows up along the data path π In the second one, called "Push" mode, the Diameter server goes first and proactively sends a command to the network element(s) to install QoS authorization state π₯ That could be triggered by off-path signaling, such as Session Initiation Protocol (SIP) [RFC3261] call control, for example π
the spec includes a set of command codes so that one Diameter QoS application server can support both Pull and Push modes π which one it uses depends on the needs of the network technologies, the deployment scenarios, and the end-host capabilities π Together with the Diameter Attribute Value Pairs (AVPs) defined in [RFC5777] and in [RFC5624], this doc walks through the basic call flows used to establish, modify, and terminate a Diameter QoS application session π§
last bit: the doc defines a bunch of Diameter-encoded AVPs. They're described using a modified version of the Augmented Backus-Naur Form (ABNF), see [RFC3588] π€
2. Terminology πΈ
so 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 RFC 2119 [RFC2119] π those words are the rules, so pay attention π
here are the terms used in this doc:
AAA Cloud this is an infrastructure of Authentication, Authorization, and Accounting (AAA) entities (clients, agents, servers) that talk over a AAA protocol across trusted, secure connections π It offers authentication, authorization, and accounting services to applications in local and roaming scenarios π Diameter and RADIUS [RFC2865] are both widely deployed AAA protocols, so they're the main characters π
Application Endpoint (AppE) this is an entity in an end-user device that swaps signaling messages with Application Servers, or directly with other Application Endpoints π± Based on what that signaling says, the endpoint may ask the network for QoS π«Ά A SIP User Agent is one kind of Application Endpoint, iykyk π
Application Server (AppS) this is an entity that swaps signaling messages with an Application Endpoint (see above) π§ It may be a source of authorization for QoS-enhanced application flows π A SIP server is one kind of Application Server β¨
Authorizing Entity (AE) this is the Diameter server that supports the QoS application, and it's responsible for authorizing QoS requests for a particular application flow or aggregate π It may be a standalone entity, or it may be integrated with an Application Server and co-located with a subscriber database π This entity corresponds to the Policy Decision Point (PDP) [RFC2753] π
Network Element (NE) this is a QoS-aware router that acts as a Diameter client for the QoS application π¦ It triggers the protocol interaction for Pull mode, and in Push mode it's the one that receives the QoS information π₯ The Diameter client at a Network Element corresponds to the Policy Enforcement Point (PEP) [RFC2753] π
Pull Mode in this mode, the QoS authorization process gets kicked off by the QoS reservation request that comes in from the Application Endpoint π₯ The Network Element then asks the Authorizing Entity for the QoS authorization decision πΈ
Push Mode in this mode, the QoS authorization process gets kicked off by a request from the Application Server, or by local policies in the Authorizing Entity π€ The Authorizing Entity then installs the QoS authorization decision on the Network Element directly π§
Resource Requesting Entity (RRE) this is a logical entity that supports the protocol interaction for QoS resources π«Ά The RRE lives in the end-host, and it can talk to its peer logical entities in an Authorizing Entity or a Network Element to kick off the QoS authorization process π
3. Framework β¨
okay so the Diameter QoS application runs between an NE (acting as a Diameter client) and the resource AE (acting as a Diameter server) π Here's the big-picture architecture in Figure 1 π¦
+-------+---------+
| Authorizing |
| Entity |
|(Diameter Server)|
+-------+---------+
|
|
/\-----+-----/\
//// \\\\
|| AAA Cloud ||
| (Diameter application) |
|| ||
\\\\ ////
\-------+-----/
|
+---+--+ +-----+----+ +---+--+
| | | NE | | | Media
+ NE +===+(Diameter +===+ NE +=============>>
| | | Client) | | | Flow
+------+ +----------+ +------+
Figure 1: An Architecture Supporting QoS-AAA
Figure 1 is giving us the NEs that media flows have to pass through, a cloud of AAA servers, and an AE π ngl there can be more than one router chatting with the AAA cloud along the path of a given application flow. The figure only shows one so it doesn't get messy π§
In some deployment scenarios, NEs may request authorization through the AAA cloud based on an incoming QoS reservation request π The NE routes that request to a designated AE, and the AE sends back the result of the authorization decision. In other deployment scenarios, the authorization gets kicked off by dynamic application state, so the request has to be authenticated and authorized using information from one or more AppSs. After the AE gets the authorization request from the AppS or the NE, it decides the appropriate mode (i.e., Push or Pull) π The AE can pick the mode either statically or dynamically. Static picking might come from a configurable defined policy in the Authorizing Entity, while dynamic picking might come from information received from an application server. For Push mode, the Authorizing Entity needs to figure out which NE(s) should get the QoS authorization information pushed to them. It might work this out from info it got from the AppS, like the IP addresses of media flows πΈ
In some deployment scenarios, there's a mapping between access network type and the service logic (e.g., selection of Push or Pull mode and other differentiated handling of the resource admission and control) π The access network type might be derived from the authorization request from the AppS or the NE. When that happens, the Authorizing Entity can find the matching service logic using the mapping β¨
If the interface between the NEs and the AAA cloud is identical whether or not the AE talks to an AppS, the routers are insulated from the details of particular applications and don't need to know that Application Servers are involved π«Ά The AAA cloud may also cover business relationships, like the ones between network operators and third-party application providers. That makes flexible intra- or inter-domain authorization, accounting, and settlement possible π
3.1. Network Element Functional Model
Figure 2 is a logical operational model of resource management in a router π§ββοΈ
+-------------------------------------------------------+
| DIAMETER Client |
| Functionality |
| +---------------++-----------------++---------------+ |
| | User || QoS Application || Accounting | |
| | Authentication|| Client || Client (e.g., | |
| | Client || (Authorization ||for QoS Traffic| |
| +---------------+| of QoS Requests)|+---------------+ |
| +-----------------+ |
+-------------------------------------------------------+
^
v
+--------------+ +----------+
|QoS Signaling | | Resource |
|Msg Processing|<<<<<>>>>>>>|Management|
+--------------+ +----------+
. ^ | * ^
| v . * ^
+-------------+ * ^
|Signaling msg| * ^
| Processing | * V
+-------------+ * V
| | * V
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
. . * V
| | * .............................
. . * . Traffic Control .
| | * . +---------+.
. . * . |Admission|.
| | * . | Control |.
+----------+ +------------+ . +---------+.
<.->| Input | | Outgoing |<.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.->
| Packet | | Interface | .+----------+ +---------+.
===>|Processing|====| Selection |===.| Packet |====| Packet |.=>
| | |(Forwarding)| .|Classifier| Scheduler|.
+----------+ +------------+ .+----------+ +---------+.
.............................
<.-.-> = signaling flow
=====> = data flow (sender --> receiver)
<<<>>> = control and configuration operations
****** = routing table manipulation
Figure 2: Network Element Functional Model
Okay so processing an incoming QoS reservation request has three actions: admission control, authorization, and resource reservation π The admission control function gives info about the resources that are free and checks whether there are enough to fulfill the request. Authorization is done by the Diameter client, which means contacting an authorization entity through the AAA cloud shown in Section 3 π¦ If both checks pass, the authorized QoS parameters get set in the packet classifier and the packet scheduler. Note that the parameters passed to the Traffic Control function may be different from the ones that requested QoS, depending on the authorization decision π Once the requested resource is granted, the Resource Management function sends accounting info to the AE through the Diameter client π
3.2. Implications of Endpoint QoS Capabilities
3.2.1. Endpoint Categories
The QoS capabilities of Application Endpoints are all over the place, so they can be sorted into categories like this πΈ
Category 1
A Category 1 Application Endpoint has no QoS capability at either the application or the network level π This type of AppE can set up a connection through application signaling, but it can't specify resource/QoS requirements through either application- or network-level signaling.
Category 2
A Category 2 Application Endpoint only has QoS capability at the application level β¨ This type of AppE can set up a connection through application signaling with certain resource/QoS requirements (e.g., application attributes), but it can't signal any resource/QoS requirements at the network level.
Category 3
A Category 3 Application Endpoint has QoS capability at the network level π₯ This type of AppE can set up a connection through application signaling, translate service characteristics into network resource/QoS requirements (e.g., network QoS class) locally, and request the resources through network signaling, e.g., Resource ReSerVation Protocol (RSVP) [RFC2205] or Next Steps in Signaling (NSIS) [NSIS-QOS] π§
3.2.2. Interaction Modes between the Authorizing Entity and Network Element
Different QoS mechanisms are used in packet networks π They fall into two schemes: IntServ [RFC2211] [RFC2212] and Diffserv [RFC2474]. In the IntServ scheme, network signaling (e.g., RSVP, NSIS, or link-specific signaling) is commonly used to kick off a request from an AppE for the QoS resource it wants. In the Diffserv scheme, QoS resources get provisioned based on predefined QoS service classes, not on flow-based QoS requests that the AppE starts π¦
It's obvious that the eligible QoS scheme is tied to the AppE's capability in the context of QoS authorization π Since Category 1 and 2 AppEs can't start QoS resource requests through network signaling, using the current IntServ mechanism to signal QoS info across the network doesn't generally apply to them. Depending on network technology and operator requirements, a Category 3 AppE may or may not use network signaling for resource requests π«Ά
The mix of endpoint QoS capabilities and network QoS schemes is why there's a split in the interaction mode between the QoS authorization system and the underlying NEs π When the IntServ scheme is used by a Category 3 endpoint, the authorization process is typically started by an NE when it gets a trigger from the endpoint, like network QoS signaling. In the Diffserv scheme, the NE can't request resource authorization on its own initiative, so the authorization process is typically triggered either by requests from AppSs or by policies the operator defined π
So two interaction modes are needed to cover the different combos of QoS schemes and endpoint QoS capabilities: Push mode and Pull mode β¨
Push mode
The QoS authorization process is triggered by AppSs or local network conditions (e.g., time of day on resource usage and QoS classes), and the AE installs the authorization decisions on the network element on its own initiative, with no explicit request π To support Push mode, the AE (i.e., Diameter server) should be able to start a Diameter authorization session to talk to the NE (i.e., Diameter client) without any preestablished connection from the network element πΈ
Pull mode
The QoS authorization process is triggered by network signaling received from end-user equipment, or by a local event in the NE according to pre-configured policies, and authorization decisions are produced when the NE asks for them π§ To support Pull mode, the NE (i.e., Diameter client) starts a Diameter authorization session to talk to the Authorizing Entity (i.e., Diameter server) π
For Category 1 and 2 Application Endpoints, Push mode is REQUIRED π For a Category 3 AppE, either Push mode or Pull mode MAY be used π
Push mode works for certain networks, like Cable network, DSL, Ethernet, and Diffserv-enabled IP/MPLS π¦ Pull mode is a better fit for IntServ-enabled IP networks or certain wireless networks, like the General Packet Radio Service (GPRS) networks defined by the Third Generation Partnership Project (3GPP) π Some networks (for example, Worldwide Interoperability for Microwave Access (WiMAX)) might need both Push and Pull modes π
3.3. Authorization Schemes β¨
3.3.1. Pull Mode Schemes
okay so there are three basic authorization schemes for Pull mode π : one two-party scheme and two three-party schemes. The notation is from the point of view of whoever does the QoS authorization (QoS Authz) π. Authenticating the QoS requesting entity might happen at the NE as part of the QoS signaling protocol, or through an off-path protocol (on the application layer or for network access authentication), or the AE might get a request to authenticate and authorize the QoS requesting entity π¦. From the Diameter QoS application's point of view, these schemes differ in what kind of information needs to be carried π§. We're focusing on the "Basic Three-Party Scheme" (see Figure 3) and the "Token-Based Three-Party Scheme" (see Figure 4) π. In the "Two-Party Scheme," the QoS RRE gets authenticated by the NE, and the authorization decision is made either locally at the NE itself or offloaded to a trusted entity (most likely in the same administrative domain) πΈ. In the two-party case, no Diameter QoS protocol interaction is required π.
+--------------+
| Authorizing |
| Entity |
| authorizing | <......+
| resource | .
| request | .
+------------+-+ .
--^----------|-- . .
///// | | \\\\\ .
// | | \\ .
| QoS | QoS AAA | QoS |.
| authz| protocol |authz |.
| req.| | res. |.
\\ | | // .
\\\\\ | | ///// .
QoS --|----------v-- . .
+-------------+ request +-+------------+ .
| Entity |----------------->| NE | .
| requesting | | performing | .
| resource |granted / rejected| QoS | <.....+
| |<-----------------| reservation | financial
+-------------+ +--------------+ settlement
Figure 3: Three-Party Scheme
In the "Basic Three-Party Scheme," a QoS reservation request that reaches the NE gets forwarded to the Authorizing Entity (e.g., in the user's home network), and that's where the authorization decision gets made π₯. Here's the tea: financial settlement (a business relationship, like a roaming agreement) between the visited network and the home network makes sure the visited network is compensated for the resources the user consumes through their home network π°β¨.
financial settlement
...........................+
Authorization V ------- .
Token Request +--------------+ / QoS AAA \ .
+-------------->| | / protocol \ .
| | Authorizing +--------------+ \ .
| | Entity | | | | .
| +------+ |<--+----+ | | .
| | +--------------+ |QoS | |QoS |.
| | |authz| |authz|.
| |Authorization |req.+| |res. |.
| |Token |Token| | |.
| | | | | . | .
| | \ | | . / .
| | \ | | / .
| | QoS request |-----V . .
+-------------+ + Authz Token +--------+-----+ .
| Entity |----------------->| NE | .
| requesting | | performing | .
| resource |granted / rejected| QoS | <....+
| |<-----------------| reservation |
+-------------+ +--------------+
Figure 4: Token-Based Three-Party Scheme
The "Token-Based Three-Party Scheme" is good for environments where an earlier protocol interaction is used to request authorization tokens, which then help out the authorization process at the NE or the AE [RFC3521] π§.
The QoS RRE may be involved in an application-layer protocol interaction, for example using SIP [RFC3313], with the AE π. As part of this, authentication and authorization at the application layer might take place π. If the authorization decision goes through (which might involve the user's home AAA server), the AE (e.g., the SIP proxy and an entity the SIP proxy trusts) generates an authorization token and sends it back to the end-host to be included in the QoS signaling protocol π. The NE that gets the QoS signaling message will use that token to authorize the QoS request π . Alternatively, the Diameter QoS application can be used to forward the authorization token to the user's home network π. The token lets the authorization decision made at the application layer get linked to a matching QoS signaling session π¦. Note that the authorization token might either refer to established state about the authorization decision, or the token might carry the authorized parameters itself (protected by a digital signature or a keyed message digest to prevent tampering) π. In the latter case, the token may contain several pieces of information about the authorized application session, but at minimum it should contain:
- An identifier for the AE (for example, an AppS) that issued the authorization token;
- An identifier referring to a specific application protocol session for which the token was issued; and
- A keyed message digest or digital signature protecting the content of the authorization token.
A possible structure for the authorization token, and for the policy element that carries it, is proposed in the context of RSVP [RFC3520] π§.
In the scenario above, where the QoS resource requesting entity is involved in an application-layer protocol interaction with the AE, it may be worthwhile to consider a token-less binding mechanism too π«Ά. The application-layer protocol interaction may have indicated the transport port numbers at the QoS RRE where it might receive media streams (for example, in SIP/SDP [RFC4566] signaling, these port numbers are advertised) π‘. The QoS RRE may also use these port numbers in some IP filter indications to the NE performing the QoS reservation, so that it can properly tunnel the inbound packets πΈ. The NE performing the QoS reservation forwards the QoS resource requesting entity's IP address and the IP filter indications to the AE in the QoS authorization request π. The AE uses the QoS RRE's IP address and the port numbers in the IP filter indication, which match the port numbers advertised in the earlier application-layer protocol interaction, to identify the right piece of policy information to send to the NE performing the QoS reservation in the QoS authorization response β¨.
3.3.2. Push Mode Schemes
Push mode can be split into two types: endpoint-initiated and network-initiated π. In the first case, the authorization process gets triggered by the AppS in response to an explicit QoS request from an endpoint through application signaling, e.g., SIP π£. In the second case, the authorization process gets triggered by the AppS without any explicit QoS request from an endpoint π.
In the endpoint-initiated scheme, the QoS RRE (i.e., the AppE) works out the required application-level QoS and sends a QoS request in an application signaling message π. The AppS extracts the application-level QoS information and triggers the authorization process at the AE π₯. In the network-initiated scheme, the AE and/or AppS should derive and determine the QoS requirements from application attributes, subscription, and endpoint capability when the endpoint doesn't explicitly indicate the QoS attributes π§ . The AE makes an authorization decision based on application-level QoS information, network policies, end-user subscription, network resource availability, etc., and installs the decision directly at the NE π.
A Category 1 AppE requires network-initiated Push mode, and a Category 2 AppE may use either type of Push mode π .
financial settlement
...........................+
Application V ------- .
signaling msg +--------------+ / QoS AAA \ .
+-------------->| | / protocol \ .
| | Authorizing +--------------+ \ .
| | Entity | | | | .
| + |<--+----+ | | .
| +--------------+ |QoS | |QoS |.
| install| |install
| |rsp. | |req. |.
| | | | |.
| | | | . | .
| \ | | . / .
| \ | | / .
V |-----V . .
+-------------+ +--------+-----+ .
| Entity | | NE | .
| requesting | | performing | .
| resource |QoS rsrc granted | QoS | <....+
| |<-----------------| reservation |
+-------------+ +--------------+
Figure 5: Scheme for Push Mode
3.4. QoS Application Requirements π
A QoS application has to hit a whole bunch of requirements, and it needs to work across a super diverse set of networking environments and services β¨. It should be compatible with different deployment scenarios that have their own QoS signaling models and security issues π. While it's interworking with QoS signaling protocols, a Diameter QoS application should accommodate what those protocols can already do, rather than slapping new functional requirements onto them π«Ά. Here's the list of requirements for a QoS authorization application:
Identity-based Routing πΊοΈ
The Diameter QoS application MUST route AAA requests to the Authorizing Entity, based on the provided identity of the QoS requesting entity or the identity of the AE encoded in the provided authorization token.
Flexible Authentication Support πͺͺ
The Diameter QoS application MUST support a variety of different authentication protocols for verification of authentication information present in QoS signaling messages. The support for these protocols MAY be provided indirectly by tying the signaling communication for QoS to a previous authentication protocol exchange (e.g., using network access authentication).
Making an Authorization Decision π§
The Diameter QoS application MUST exchange sufficient information between the AE and the enforcing entity (and vice versa) to compute an authorization decision and to execute this decision.
Triggering an Authorization Process β°
The Diameter QoS application MUST allow periodic and event-triggered execution of the authorization process, originated at the enforcing entity or even at the AE.
Associating QoS Reservations and Application State π
The Diameter QoS application MUST carry information sufficient for an AppS to identify the appropriate application session and associate it with a particular QoS reservation.
Dynamic Authorization π
It MUST be possible for the Diameter QoS application to push updates towards the NE(s) from Authorizing Entities.
Bearer Gating π¦
The Diameter QoS application MUST allow the AE to gate (i.e., enable/disable) authorized application flows based on, e.g., application state transitions.
Accounting Records π
The Diameter QoS application MAY define QoS accounting records containing duration, volume (byte count) usage information, and a description of the QoS attributes (e.g., bandwidth, delay, loss rate) that were supported for the flow.
Sending Accounting Records π€
The NE SHOULD be able to send accounting records for a particular QoS reservation state to an accounting entity.
Failure Notification π¨
The Diameter QoS application MUST allow the NE to report failures, such as loss of connectivity due to movement of a mobile node or other reasons for packet loss, to the Authorizing Entity.
Accounting Correlation π§©
The Diameter QoS application MAY support the exchange of sufficient information to allow for correlation between accounting records generated by the NEs and accounting records generated by an AppS.
Interaction with Other AAA Applications π€
Interaction with other AAA applications, such as the Diameter Network Access Server Application [RFC4005], may be required for exchange of authorization, authentication, and accounting information.
In deployment scenarios where authentication of the QoS reservation requesting entity (e.g., the user) is done by means outside the Diameter QoS application protocol interaction, the AE is contacted only with a request for QoS authorization. Authentication might have already taken place via the interaction with the Diameter application [RFC4005] or as part of the QoS signaling protocol (e.g., Transport Layer Security (TLS) [RFC5246] in the General Internet Signaling Transport (GIST) protocol [NSIS-NTLP]).
Authentication of the QoS reservation requesting entity to the AE is necessary if a particular Diameter QoS application protocol cannot be related (or if there is no intention to relate it) to a prior authentication. In this case, the AE MUST authenticate the QoS reservation requesting entity in order to authorize the QoS request as part of the Diameter QoS protocol interaction. π
This document refers to three types of sessions that need to be properly correlated. π§΅
QoS Signaling Session π‘
The time period during which a QoS signaling protocol establishes, maintains, and deletes a QoS reservation state at the QoS network element is referred to as a QoS signaling session. Different QoS signaling protocols use different ways to identify QoS signaling sessions. The same applies to different usage environments. Currently, this document supports three types of QoS session identifiers, namely a signaling session id (e.g., the Session Identifier used by the NSIS protocol suite), a flow id (e.g., identifier assigned by an application to a certain flow as used in the 3GPP), and a flow description based on the IP parameters of the flow's endpoints.
Diameter Authorization Session ποΈ
The time period for which a Diameter server authorizes a requested service (i.e., QoS resource reservation) is referred to as a Diameter authorization session. It is identified by a Session-Id included in all Diameter messages used for management of the authorized service (initial authorization, re-authorization, termination), see [RFC3588].
Application-Layer Session π¬
The application-layer session identifies the duration of an application-layer service that requires provision of a certain QoS. An application-layer session identifier is provided by the QoS requesting entity in the QoS signaling messages, for example as part of the authorization token. In general, the application session identifier is opaque to the QoS-aware NEs. It is included in the authorization request message sent to the AE and helps it to correlate the QoS authorization request to the application session state information.
Correlating these sessions is done at each of the three involved entities: The QoS requesting entity correlates the application with the QoS signaling sessions. The QoS NE correlates the QoS signaling session with the Diameter authorization sessions. The AE SHOULD bind the information about the three sessions together. Note that in certain scenarios, not all of the sessions are present. For example, the application session might not be visible to the QoS signaling protocol directly if there is no binding between the application session and the QoS requesting entity using the QoS signaling protocol. π§Ά
4. QoS Application Session Establishment and Management π
4.1. Parties Involved π―
Authorization models supported by this application include three parties:
- Resource Requesting Entity
- Network Elements (Diameter QoS application (DQA) client)
- Authorizing Entity (Diameter QoS application (DQA) server)
Note that the QoS RRE is only indirectly involved in the message exchange. This entity provides the trigger to initiate the Diameter QoS protocol interaction by transmitting QoS signaling messages. The Diameter QoS application is only executed between the Network Element (i.e., DQA client) and the Authorizing Entity (i.e., DQA server). π―
The QoS RRE may communicate with the AE using application-layer signaling for the negotiation of service parameters. As part of this application-layer protocol interaction, for example using SIP, authentication and authorization might take place. This message exchange is, however, outside the scope of this document. The protocol communication between the QoS resource requesting entity and the QoS NE might be accomplished using the NSIS protocol suite, RSVP, or a link-layer signaling protocol. A description of these protocols is also outside the scope of this document. π
4.2. Session Establishment πΈ
Pull and Push modes use a different set of command codes for session establishment. For other operations, such as session modification and termination, they use the same set of command codes. π
The selection of Pull mode or Push mode operation is based on the trigger of the QoS authorization session. When a QoS-Authorization-Request (QAR, see Section 5.1) message with a new Session-Id is received, the AE operates in Pull mode; when other triggers are received, the AE operates in Push mode. Similarly, when a QoS-Install-Request (QIR, see Section 5.3} with a new Session-Id is received, the NE operates in Push mode; when other triggers are received, the NE operates in Pull mode. π
The QoS authorization session is typically established per subscriber base (i.e., all requests with the same User-ID), but it is also possible to be established on a per node or per request base. The concurrent sessions between an NE and an AE are identified by different Session-Ids. π
4.2.1. Session Establishment for Pull Mode
okay so a request for a QoS reservation, or some local events showing up at an NE, can kick off a Diameter QoS authorization session π the NE grabs the required objects from the QoS signaling message, converts them into Diameter AVPs, and generates a QAR message π
Figure 6 shows the protocol interaction between a Resource Requesting Entity, a Network Element, and the Authorizing Entity π¦
The AE's identity, info about the application session and/or the identity and credentials of the QoS RRE, the requested QoS parameters, and the signaling session identifier and/or QoS-enabled data flow identifiers MAY be encapsulated into their own Diameter AVPs and tucked into the Diameter message sent to the AE π The QAR is sent to a Diameter server, and that server can be either the home server of the QoS requesting entity or an AppS π§
+------------------------------------------+------------------------+
| QoS-Specific Input Data | Diameter AVPs |
+------------------------------------------+------------------------+
| Authorizing Entity ID (e.g., | Destination-Host |
| Destination-Host taken from | Destination-Realm |
| authorization token, Destination-Realm, | |
| or derived from the Network Access | |
| Identifier (NAI) of the QoS requesting | |
| entity) | |
| Authorization Token Credentials of the | QoS-Authorization-Data |
| QoS requesting entity | User-Name |
| QoS-Resources (including QoS parameters) | |
+------------------------------------------+------------------------+
Table 1: Mapping Input Data to QoS AVPs -- Pull Mode
Authorization processing starts at the Diameter QoS server the moment it receives the QAR π Based on the information in the QoS-Authentication-Data, User-Name, and QoS-Resources AVPs, the server works out the authorized QoS resources and the flow state (enabled/disabled) from locally available info (for example, policy information that may have been set up earlier as part of an application-layer signaling exchange, or the user's subscription profile) π The QoS-Resources AVP is defined in [RFC5777]. The authorization decision then comes back to the Diameter client in the QoS-Authorization-Answer (QAA) message π
Authorizing
End-Host Network Element Entity
requesting QoS (Diameter (Diameter
QoS Client) QoS Server)
| | |
+---QoS-Reserve---->| |
| +- - - - - QAR - - - - - >|
| |(QoS-Resources, |
| | QoS-Auth-Data,User-ID)|
| | +--------+--------------+
| | | Authorize request |
| | | Keep session data |
| | |/Authz-time,Session-Id/|
| | +--------+--------------+
| |< - - - - QAA - - - - - -+
| |(Result-Code, |
| |QoS-Resources,Authz-time)|
| +-------+---------+
| |Install QoS state|
| | + |
| | Authz session |
| | /Authz-time/ | QoS Responder
| | | Node
| +-------+---------+ |
| +----------QoS-Reserve---....--->|
| | |
| |<---------QoS-Response--....----|
|<--QoS-Response----+ |
| | |
|=====================Data Flow==============....===>|
Figure 6: Initial QoS Request Authorization for Pull Mode
The Authorizing Entity keeps the authorization session state, and it SHOULD save extra info for managing the session (for example, the Signaling-Session-Id and authentication data) as part of that session state π§
The final result of the authorization request comes back in the Result-Code AVP of the QAA message sent by the Authorizing Entity π― If authorization succeeds (that is, Result-Code = DIAMETER_LIMITED_SUCCESS, see Section 7.1), info about the authorized QoS resources and the status of the authorized flow (enabled/disabled) comes back in the QoS-Resources AVP of the QAA message β¨ The NE's QoS Traffic Control function then installs the QoS info provided via the QAA. Just so we're clear: DIAMETER_LIMITED_SUCCESS means the AE is expecting another QAR message to confirm the successful QoS resource reservation and the final reserved QoS resources (more on that below) π«Ά
One super important piece of info from the Authorizing Entity is the authorization lifetime, which rides inside the QAA π The authorization lifetime tells the NE how long that authorization decision stays valid for this particular QoS reservation β³ Lots of things can change the authorized session duration, like the user's subscription plan or the credits currently sitting in the user's account (see Section 8) πΈ The authorization duration is time-based, as specified in [RFC3588]. If you want to extend the authorization period, a new QoS-Authorization-Request/Answer message exchange SHOULD be initiated π For more on keeping a QoS authorization session going, check out Sections 4.3, 4.4, and 8 πΈ
The indication of a successful QoS reservation and activation of the data flow comes through the transmission of a QAR message, which reports the parameters of the established QoS state: the reserved resources, the duration of the reservation, and the identification of the QoS-enabled flow/QoS signaling session π₯ The Diameter QoS server then acknowledges the reserved QoS resources with the QA Answer (QAA) message, where the Result-Code is set to DIAMETER_SUCCESS π₯³ Heads up though: the reserved QoS resources reported in this QAR message MAY be different from the ones authorized with the initial QAA message π That can happen because of QoS-signaling-specific behavior (for example, receiver-initiated reservations with One-Path-With-Advertisements) or because of the specific QoS negotiation process along the data path π
4.2.2. Session Establishment for Push Mode π¦
okay so in push mode, the Diameter QoS server in the AE is the one who kicks things off π It starts a Diameter QoS authorization session when someone asks for a QoS reservation, either through application-layer signaling or because of a local event. Then it generates a QoS-Install-Request (QIR) message for the Diameter QoS client in the NE and maps the required objects into Diameter payload objects β¨
Figure 7 shows the protocol interaction between the AE, a Network Element, and an RRE π§
Here's the tea: the NE's identity, info about the application session and/or the identity and credentials of the QoS resource requesting entity, the requested QoS parameters, and the signaling session identifier and/or QoS enabled data flow identifiers MAY be encapsulated into their own Diameter AVPs and sent in the Diameter message from the Diameter QoS server in the Authorizing Entity to the Diameter QoS client in the NE. π This means the AE needs to know specific stuff about how to find the NE it should contact and which data flow the QoS reservation is for. That info can be statically configured or dynamically discovered, so peek at Section 4.2.3 for the deets π
+-----------------------------------------+-------------------------+
| QoS-Specific Input Data | Diameter AVPs |
+-----------------------------------------+-------------------------+
| Network Element ID | Destination-Host |
| | Destination-Realm |
| Authorization Token Credentials of the | QoS-Authorization-Data |
| QoS requesting entity | User-Name |
| QoS-Resources (including QoS | |
| parameters) | |
+-----------------------------------------+-------------------------+
Table 2: Mapping Input Data to QoS AVPs -- Push Mode
Authorization processing kicks off at the Diameter QoS server when it gets a request from an RRE through an AppS (for example a SIP Invite), or when a local event triggers it (like a pre-configured timer) β° Based on what it received, the server figures out the authorized QoS resources and the flow state (enabled/disabled) using info it already has locally. That could be policy info set up earlier during an application-layer signaling exchange, or the user's subscription profile π The authorization decision then gets reflected in the QoS-Install-Request (QIR) message sent to the Diameter QoS client.
Authorizing
End-Host Network Element Entity
requesting QoS (Diameter (Diameter
QoS Client) QoS Server)
| | |
| | |<-- Trigger --
| | +--------+--------------+
| | | Authorize request |
| | | Keep session data |
| | |/Authz-time,Session-Id/|
| | +--------+--------------+
| | |
| |<-- - -- - QIR - - - - - -+
| |(Initial Request,Decision |
| |(QoS-Resources,Authz-time)|
| +-------+---------+
| |Install QoS state|
| | + |
| | Authz session |
| | /Authz-time/ |
| | |
| +-------+---------+
| + - - - - QIA - - - - - ->|
| | (Result-Code, |
| | QoS-Resources) |
| | +--------+--------------+
| | | Report for successful |
| | | QoS reservation |
| | |Update of reserved QoS |
| | | resources |
| | +--------+--------------+
| | QoS Responder
| | Node
| | |
|=====================Data Flow==============....===>|
Figure 7: Initial QoS Request Authorization for Push Mode
The AE keeps authorization session state, and it SHOULD save extra info for managing the session (like the Signaling-Session-Id and authentication data) as part of that session state πΈ
The final answer for the authorization decision lives in the QoS-Resources AVP of the QIR message sent by the AE. The QoS info that comes in through the QIR then gets installed by the QoS Traffic Control function of the NE π₯
Now, a really important piece of info from the AE is the authorization lifetime, which rides inside the QIR π°οΈ It tells the NE how long the authorization decision is valid for this particular QoS reservation. Lots of things can affect how long a session is authorized, like the user's subscription plan or how many credits are left in their account (see Section 8) π³ The authorization duration is time-based, just like [RFC3588] specifies. If you want to extend the authorization period, a new QoS-Install-Request/Answer or QoS-Authorization-Request/Answer message exchange SHOULD be initiated π More on keeping QoS authorization sessions alive is in Sections 4.3, 4.4, and 8.
The indication of the QoS reservation and the activation of the data flow can come right away from the QoS-Install-Answer message β‘ When enforcement works, the Result-Code (= DIAMETER_SUCCESS, (see Section 7.1)) goes in the QIA message. Heads up though: the reserved QoS resources reported in the QIA message might not match what was originally authorized in the QIR message π That's because of QoS signaling-specific behavior (like receiver-initiated reservations with One-Path-With-Advertisements) or the QoS negotiation process along the data path. And if Multiple AEs control the same NE, the NE should pick which authorization decision to enforce based on the priority of the request π
4.2.3. Discovery and Selection of Peer Diameter QoS Application Node π§
The Diameter QoS application node can learn about its peer nodes (like the Fully-Qualified Domain Name (FQDN) or IP address) through static configuration or dynamic discovery, as described in Section 5.2 of [RFC3588]. Specifically, the NE shall perform the relevant operation for Pull mode, and the AE shall perform the relevant operations for Push mode π
When the Diameter QoS application node gets a trigger to start a new Diameter QoS authorization session, it selects and retrieves the location info of the peer node that's associated with the affected user. It does this using some index info provided by the RRE π«Ά For instance, that index could be the Authorization Entity's ID stored in the authorization token, the end-user identity (like a NAI [RFC4282]), or a globally routable IP address.
4.3. Session Re-Authorization π
Client- and server-side initiated re-authorizations are both considered in the design of the Diameter QoS application. Whether those re-authorization events are transparent to the resource requesting entity or cause specific actions in the QoS signaling protocol is outside the scope of the Diameter QoS application π ββοΈ It depends directly on what the QoS signaling protocol is capable of.
There are a bunch of policy rule options for how the NE (AAA client) contacts the AE for re-authorization π These rules depend on the semantics and contents of the QAA message the AE sends:
- a. The QAA message contains the authorized parameters of the flow and its QoS and sets their limits (presumably upper). With these parameters, the AE specifies the services the NE can provide and for which it will be financially compensated. So any change, or request for change, to the parameters of the flow and its QoS that doesn't conform to the authorized limits requires contacting the AE for authorization πΈ
- b. The QAA message contains authorized parameters of the flow and its QoS. The rules that decide whether parameter changes need re-authorization are agreed out of band, based on a Service Level Agreement (SLA) between the domains of the NE and the AE π€
- c. The QAA message contains the authorized parameters of the flow and its QoS. Any change, or request for change, to these parameters requires contacting the AE for re-authorization π
- d. In addition to the authorized parameters of the flow and its QoS, the QAA message contains policy rules that determine the NE's actions when there's a change, or a request for change, in the authorized parameters π§
These options aren't exhaustive, btw. Elaborating on any of the listed approaches is deployment/solution specific and isn't covered in the current document π
Also, the AE may use an RAR (Re-Authorization-Request) to do re-authorization with the authorized parameters directly, when the re-authorization is triggered by a service request or by local events/policy rules π¦
4.3.1. Client-Side Initiated Re-Authorization π
okay so the AE hands over the duration of the authorization session inside the QoS-Authorization-Answer (QAA) message π. Before that period runs out, a fresh QoS-Authorization-Request (QAR) message MAY be sent to the AE π. The QAR MAY get triggered when the NE gets a QoS signaling message that needs the authorized parameters of an ongoing QoS session changed π§, or when the authorization lifetime expires β°.
Authorizing
End-Host Network Element Entity
requesting QoS (Diameter (Diameter
QoS Client) QoS Server)
| | |
|=====================Data Flow==========================>
| | |
| +-------+----------+ |
| |Authz-time/CC-Time| |
| | expires | |
| +-------+----------+ |
| +- - - - - QAR - - - - - >|
| |(QoS-Resources, |
| | QoS-Authorization-Data,User-ID) |
| +--------+--------------+
NOTE: | | Authorize request |
Re-authorization | | Update session data |
is transparent to | |/Authz-time,Session-Id/|
the End-Host | +--------+--------------+
|< - - - - QAA - - - - - -+
| |(Result-Code, |
| |QoS-Resources,Authz-time)|
| +-------+---------+ |
| |Update QoS state | |
| | + | |
| | Authz session | |
| | /Authz-time/ | |
| | | |
| +-------+---------+ |
| | |
|=====================Data Flow==========================>
| |
Figure 8: Client-side Initiated QoS Re-Authorization πΈ
4.3.2. Server-Side Initiated Re-Authorization π¦
the AE MAY kick off a QoS re-authorization by sending a Re-Authorization-Request (RAR) message π¨. That message is defined in the Diameter base protocol [RFC3588]. It MAY carry the parameters of the re-authorized QoS state too, like the reserved resources, how long the reservation lasts, and which QoS-enabled flow or QoS signaling session the NE's QoS Traffic Control function should use to put the resource state back in place π§.
when an NE gets an RAR whose Session-Id matches a QoS session that's currently active, it confirms by sending the Re-Auth-Answer (RAA) message back to the AE π«Ά.
If the RAR doesn't include any parameters of the re-authorized QoS state, the NE MUST start a QoS re-authorization by sending a QoS-Authorization-Request (QAR) message to the AE. No skipping this step, bestie π¨.
Authorizing
End-Host Network Element Entity
requesting QoS (Diameter (Diameter
QoS Client) QoS Server)
| | |
| | |<-- Trigger --
| | +--------+--------------+
| | | Authorize request |
| | | Keep session data |
| | |/Authz-time,Session-Id/|
| | +--------+--------------+
| | |
| |<-- - -- - RAR - - - - - -+
| |(Request,Decision |
| |(QoS-Resources,Authz-time)|
| +-------+---------+
| |Install QoS state|
| | + |
| | Authz session |
| | /Authz-time/ |
| | |
| +-------+---------+
| + - - - - RAA - - - - - ->|
| | (Result-Code, |
| | QoS-Resources) |
| | +--------+--------------+
| | | Report for successful |
| | | QoS reservation |
| | |Update of reserved QoS |
| | | resources |
| | +--------+--------------+
| | |
Figure 9: Server-Side Initiated QoS Re-Authorization β¨
4.4. Session Termination π
4.4.1. Client-Side Initiated Session Termination π
the authorization session for an installed QoS reservation state MAY be ended by the Diameter client. It does that by sending a Session-Termination-Request (STR) message to the Diameter server, which replies with a Session-Termination-Acknowledgement (STA) message π. This is a Diameter base protocol function, defined in [RFC3588]. Termination can get triggered by a QoS signaling message asking to delete the existing QoS reservation state, or by a soft-state expiration of that reservation state β³.
Authorizing
End-Host Network Element Entity
requesting QoS (Diameter (Diameter
QoS Client) QoS Server)
| | |
|==Data Flow==>X /Stop of the data flow/ |
| | |
+---QoS-Reserve---->| |
| (Delete QoS +- - - - - STR - - - - - >|
| reservation) | +--------+--------------+
| | | Remove authorization |
| | | session state |
| | +--------+--------------+
| |< - - - - STA - - - - - -+
| +-------+--------+ |
| |Delete QoS state|
| +-------+--------+ QoS Responder
| | Node
| +----------QoS-Reserve-----....--->|
| | (Delete QoS |
| | reservation) |
| |<---------QoS-Response----....----+
|<--QoS-Response----+ |
Figure 10: Client-Side Initiated Session Termination π
4.4.2. Server-Side Initiated Session Termination π«£
at any point during a session, the AE MAY send an Abort-Session-Request (ASR) message to the NE π . That's also a Diameter base protocol function, defined in [RFC3588]. Reasons the AE might send an ASR to the NE are insufficient credits or session termination at the application layer πΈ. When the ASR lands, it ends the authorized session, releases the reserved resources at the NE, and sends out an appropriate QoS signaling message to notify the other Network Elements that are aware of the signaling session π£.
Authorizing
End-Host Network Element Entity
requesting QoS (Diameter (Diameter
QoS Client) QoS Server)
| | |
|=====================Data Flow==========================>
| |
| |< - - - - ASR - - - - - -+
| | |
|====Data Flow=====>X | QoS Responder
| | | Node
|<--QoS-Notify------+----------QoS-Reserve-----....--->|
| | (Delete QoS | |
| reservation) |
+-------+--------+ |
|Delete QoS state| |
+-------+--------+ |
+- - - - - ASA - - - - - >|
| +--------+--------------+
| | Remove authorization |
| | session state |
| +--------+--------------+
| QoS Responder
| Node
|<---------QoS-Response----....----+
| |
Figure 11: Server-Side Initiated Session Termination π
5. QoS Application Messages π
the Diameter QoS application needs new mandatory AVPs and Command-Codes (see Section 3 of [RFC3588]) π§©. Four new Diameter messages come with Command-Codes, and every Diameter implementation that conforms to this specification MUST support those values π₯.
+---------------------------+---------+------+-------------+
| Command Name | Abbrev. | Code | Reference |
+---------------------------+---------+------+-------------+
| QoS-Authorization-Request | QAR | 326 | Section 5.1 |
| QoS-Authorization-Answer | QAA | 326 | Section 5.2 |
| QoS-Install-Request | QIR | 327 | Section 5.3 |
| QoS-Install-Answer | QIA | 327 | Section 5.4 |
+---------------------------+---------+------+-------------+
Table 3: Diameter QoS Commands π
on top of that, the Diameter QoS application also uses these Diameter base protocol messages β¨:
+-----------------------+---------+------+-----------+
| Command-Name | Abbrev. | Code | Reference |
+-----------------------+---------+------+-----------+
| Re-Auth-Request | RAR | 258 | [RFC3588] |
| Re-Auth-Answer | RAA | 258 | [RFC3588] |
| Abort-Session-Request | ASR | 274 | [RFC3588] |
| Abort-Session-Answer | ASA | 274 | [RFC3588] |
| Session-Term-Request | STR | 275 | [RFC3588] |
| Session-Term-Answer | STA | 275 | [RFC3588] |
+-----------------------+---------+------+-----------+
Table 4: Diameter Base Commands π¦
Diameter nodes that conform to this specification MAY advertise support for the Diameter QoS application π’. They do it by putting the value 9 in the Auth-Application-Id or the Acct-Application-Id AVP of the Capabilities-Exchange-Request and Capabilities-Exchange-Answer commands, see [RFC3588] π€.
the value 9 MUST be used as the Application-Id in every QAR/QAA and QIR/QIA command π«Ά.
the value of zero (0) SHOULD be used as the Application-Id in every STR/STA, ASR/ASA, and RAR/RAA command π§.
5.1. QoS-Authorization Request (QAR) π
okay so the QAR message is the one NEs send when they want to ask for quality of service resources for a specific flow π¦ It's marked by Command-Code 326 with the 'R' bit set in the Command Flags, and the base spec's rules from Section 3 of [RFC3588] apply to it too.
The QAR message MUST carry the signaling session identification, the AE identification, info about the QoS being asked for, and who the QoS requesting entity is π«Ά Depending on the deployment, an authorization token and the requesting entity's credentials SHOULD be included too, so keep those in mind β¨
The message format looks like this:
<QoS-Authorization-Request> ::= < Diameter Header: 326, REQ, PXY >
< Session-Id >
{ Auth-Application-Id }
{ Origin-Host }
{ Origin-Realm }
{ Destination-Realm }
{ Auth-Request-Type }
[ Destination-Host ]
[ User-Name ]
* [ QoS-Resources ]
[ QoS-Authorization-Data ]
[ Bound-Auth-Session-Id ]
* [ AVP ]
5.2. QoS-Authorization-Answer (QAA) π
the QAA is the reply to a QAR, and it has Command-Code 326 with the 'R' bit cleared π If the QoS request gets authorized, the answer carries the AVPs that allow the QoS resources and the transport plane gating info β¨
<QoS-Authorization-Answer> ::= < Diameter Header: 326, PXY >
< Session-Id >
{ Auth-Application-Id }
{ Auth-Request-Type }
{ Result-Code }
{ Origin-Host }
{ Origin-Realm }
* [ QoS-Resources ]
[ Acct-Multisession-Id ]
[ Session-Timeout ]
[ Authorization-Session-Lifetime ]
[ Authorization-Grace-Period ]
* [ AVP ]
5.3. QoS-Install Request (QIR) π§
the QIR is Command-Code 327 with the 'R' bit set π₯ The AE uses it to install or update the QoS parameters and the flow state of an authorized flow at the transport plane element. Super important bit: the QIR MUST carry the signaling-session identification (or the identification of the flow the QoS rules apply to), the identity of the transport plane element, the description of the QoS parameters, the flow state, and how long the authorization lasts π
<QoS-Install-Request> ::= < Diameter Header: 327, REQ, PXY >
< Session-Id >
{ Auth-Application-Id }
{ Origin-Host }
{ Origin-Realm }
{ Destination-Realm }
{ Auth-Request-Type }
[ Destination-Host ]
* [ QoS-Resources ]
[ Session-Timeout ]
[ Authorization-Session-Lifetime ]
[ Authorization-Grace-Period ]
[ Authorization-Session-Volume ]
* [ AVP ]
5.4. QoS-Install Answer (QIA) πΈ
the QIA is Command-Code 327 with the 'R' bit cleared, and it's the reply to a QIR π It confirms whether the QoS reservation instructions actually got installed β¨
<QoS-Install-Answer> ::= < Diameter Header: 327, PXY >
< Session-Id >
{ Auth-Application-Id }
{ Origin-Host }
{ Origin-Realm }
{ Result-Code }
* [ QoS-Resources ]
* [ AVP ]
5.5. Re-Auth-Request (RAR) π
the RAR is Command-Code 258 with the 'R' bit set π«Ά The AE sends it to the NE to kick off a QoS re-authorization from the DQA server side π If an NE gets a RAR with no parameters for the re-authorized QoS state, the NE MUST start a re-authorization by sending a QoS-Authorization-Request (QAR) message towards the AE π₯
<RAR> ::= < Diameter Header: 258, REQ, PXY >
< Session-Id >
{ Origin-Host }
{ Origin-Realm }
{ Destination-Realm }
{ Destination-Host }
{ Auth-Application-Id }
{ Re-Auth-Request-Type }
[ User-Name ]
[ Origin-State-Id ]
* [ Proxy-Info ]
* [ Route-Record ]
* [ QoS-Resources ]
[ Session-Timeout ]
[ Authorization-Session-Lifetime ]
[ Authorization-Grace-Period ]
[ Authorization-Session-Volume ]
* [ AVP ]
5.6. Re-Auth-Answer (RAA) π¦
the RAA is Command-Code 258 with the 'R' bit cleared π The NE sends it back to the AE as the response to a RAR β¨
<RAA> ::= < Diameter Header: 258, PXY >
< Session-Id >
{ Result-Code }
{ Origin-Host }
{ Origin-Realm }
[ User-Name ]
[ Origin-State-Id ]
[ Error-Message ]
[ Error-Reporting-Host ]
* [ Failed-AVP ]
* [ Redirect-Host ]
[ Redirect-Host-Usage ]
[ Redirect-Host-Max-Cache-Time ]
* [ Proxy-Info ]
* [ QoS-Resources ]
* [ AVP ]
6. QoS Application State Machine π
okay the QoS application has its own state machine π§ It's based on the authorization state machine from Section 8.1 of the Diameter base protocol ([RFC3588]) β¨ It uses its own messages, the ones from Section 5, and its own QoS AVPs, from Section 7 π
6.1. Supplemented States for Push Mode π
so starting from the Diameter base protocol state machine, these extra states get added to the first two state machines, the ones where the session state is kept on the server π Any QoS application implementation that supports server-initiated Push mode (see Section 4.2.2) MUST support these π₯
The following states are supplemented to the state machine on the server when state is maintained on the client, as defined in Section 8.1 of the Diameter base protocol[RFC3588]:
SERVER, STATEFUL
State Event Action New State
-------------------------------------------------------------
Idle An application or local Send Pending
event triggers an initial QIR initial
QoS request to the server request
Pending Received QIA with a failed Clean up Idle
Result-Code
Pending Received QIA with Result-Code Update Open
= SUCCESS session
Pending Error in processing received Send Discon
QIA with Result-Code = SUCCESS ASR
The following states are supplemented to the state machine on the client when state is maintained on the server, as defined in Section 8.1 of the Diameter base protocol [RFC3588]:
CLIENT, STATEFUL
State Event Action New State
-------------------------------------------------------------
Idle QIR initial request Send Open
received and successfully QIA initial
processed answer,
reserve
resources
Idle QIR initial request Send Idle
received but not QIA initial
successfully processed answer with
Result-Code
!= SUCCESS
7. QoS Application AVPs π
okay so this section lists every AVP that shows up in the QAR/QAA and QIR/QIA messages, and says what their values should be π
7.1. Reused Base Protocol AVPs β¨
the QoS application reuses a bunch of session management AVPs that are defined in the base protocol ([RFC3588]) π¦ Here's the lineup:
Attribute Name AVP Code Reference [RFC3588]
Origin-Host 264 Section 6.3
Origin-Realm 296 Section 6.4
Destination-Host 293 Section 6.5
Destination-Realm 283 Section 6.6
Auth-Application-Id 258 Section 6.8
Result-Code 268 Section 7.1
Auth-Request-Type 274 Section 8.7
Session-Id 263 Section 8.8
Authorization-Lifetime 291 Section 8.9
Auth-Grace-Period 276 Section 8.10
Session-Timeout 27 Section 8.13
User-Name 1 Section 8.14
The Auth-Application-Id AVP (AVP Code 258) is assigned by IANA to Diameter applications πΈ And for the Diameter QoS application, the value of Auth-Application-Id is 9 π
7.2. QoS Application-Defined AVPs β¨
okay so this doc just borrows the AVPs from Section 4 of [RFC5777] π Then it introduces its own AVPs just for the QoS application: Bound-Auth-Session-Id and the QoS-Authorization-Data AVP π
Here's the table of the Diameter AVPs newly defined in this document for the QoS Application. It lists their AVP code values, types, possible flag values, and whether the AVP may be encrypted π
+-------------------+
| AVP Flag rules |
+----------------------------------------------|----+--------+-----+
| AVP Section | | SHLD| MUST|
| Attribute Name Code Defined Data Type |MUST| NOT| NOT|
+----------------------------------------------+----+--------+-----+
|QoS-Authorization-Data 579 7.2 OctetString| M | | V |
|Bound-Auth-Session-Id 580 7.2 UTF8String | M | | V |
+----------------------------------------------+----+--------+-----+
|M - Mandatory bit. An AVP with the "M" bit set and its value MUST |
| be supported and recognized by a Diameter entity in order for |
| the message, which carries this AVP, to be accepted. |
|V - Vendor-specific bit that indicates whether the AVP belongs to |
| an address space. |
+------------------------------------------------------------------+
QoS-Authorization-Data
The QoS-Authorization-Data AVP (AVP Code 579) is an OctetString π§Ί It's a container for application-session or user-specific data that has to be handed to the AE as input when it works out the authorization decision β¨
Bound-Authentication-Session-Id
The Bound-Authentication-Session AVP (AVP Code 580) is a UTF8String π It carries the ID of the Diameter authentication session used for network access [RFC4005]. Its job is to tie the QoS authorization request back to an earlier authentication of the end-host. That authentication was done by a co-located application for network access authentication ([RFC4005]) at the QoS NE π
8. Accounting π
okay accounting time π€ An NE MAY start an accounting session by sending an Accounting-Request (ACR) message after a successful QoS reservation and activation of the data flow (see Figures 6 and 7) π After every successful re-authorization procedure (see Figures 8 and 9), the NE MAY initiate an interim accounting message exchange π After successful session termination (see Figures 10 and 11), the NE may initiate a final exchange of accounting messages to end the accounting session and report final records for the use of the QoS resources that were reserved π§Ύ
It's worth noting that the two sessions (authorization and accounting) are managed independently by the Diameter base protocol. That independence lets the accounting session be finalized after the authorization session has already ended π¦
The detailed QoS accounting procedures are out of scope in this document π
9. Examples π¬
9.1. Example Call Flow for Pull Mode (Success Case) π
this section walks through an example of how the end-host and the Diameter QoS application entities talk to each other using Pull mode π The application-layer signaling is provided using SIP in this example π The QoS resource reservation signaling is done with the QoS NSIS Signaling Layer Protocol (NSLP). The authorization of the QoS reservation request is handled by the Diameter QoS application (DQA) π
End-Host SIP Proxy Correspondent
requesting QoS (DQA Server) Node
| | |
..|....Application-layer SIP signaling.......|..............|..
. | Invite (SDP) | | .
. +.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-> | .
. | 100 Trying | | .
. <.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-+ Invite (SDP)| .
. | +-.-.-.....-.-.> .
. | | 180 SDP' | .
. | <-.-.-.....-.-.+ .
. | +--------+--------+ | .
. | |Authorize session| | .
. | | parameters | | .
. | 180 (Session parameters) +--------+--------+ | .
. <.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-+ | .
..|..........................................|... ..........|..
| | |
| +------------+ | |
| | NE | | |
| |(DQA Client)| | |
| +------+-----+ | |
| | | |
|QoS NSLP Reserve | | |
+------------------> QAR | |
| (POLICY_DATA>v +- - - - -<<AAA>>- - - -> |
| QSPEC) v >===>(Destination-Host, | |
| v >=======>QoS-Authorization-Data++------------+ |
| >===========>QoS-Resources) |Authorize | |
| | |QoS resources| |
| | ++------------+ |
| | QAA | |
| <- - - - -<<AAA>>- - - -+ |
| |(Result-Code, | |
| |QoS-Resources, | |
| |Authorization-Lifetime)| |
| +---------+--------+ | |
| |Install QoS state1| | |
| |+ Authz session | | |
| +---------+--------+ | |
| |QoS NSLP Reserve |
| +---------------..............--------->
| | |
| | QoS NSLP Response|
|QoS NSLP Response <---------------..............---------+
<------------------+ |
| | QoS NSLP Query|
|QoS NSLP Query <---------------..............---------+
<------------------+ |
|QoS NSLP Reserve | |
+------------------> QAR | |
| +- - - - -<<AAA>>- - - -> |
| | +---+---------+ |
| | |Authorize | |
| | |QoS resources| |
| | QAA +---+---------+ |
| <- - - - -<<AAA>>- - - -+ |
| +---------+--------+ | |
| |Install QoS state2| |
| |+ Authz session | |
| +---------+--------+ |
| | QoS NSLP Reserve |
| +---------------..............--------->
| | QoS NSLP Response|
|QoS NSLP Response <---------------..............---------+
<------------------+ |
| | |
/------------------+--Data Flow---------------------------\
\------------------+--------------------------------------/
| | |
.-.-.-.-. SIP signaling
--------- QoS NSLP signaling
- - - - - Diameter QoS Application messages
========= Mapping of objects between QoS and AAA protocol
Figure 12: QoS Authorization Example - Pull Mode
so the conversation starts with SIP signaling between the two endpoints and the SIP proxy π£οΈ They negotiate and authorize the requested service and its parameters (see Figure 12) β¨ Along the way, the SIP proxy checks whether the user at Host A is allowed to use the requested service (and whether they can potentially be charged for it) π³ The negotiated session parameters then get passed to the end-host π
Next up, Host A sends a QoS signaling message toward Host B π¨ It's a QoS NSLP Reserve message, and it includes a description of the QoS it needs (the QSPEC object) plus the authorization data for the negotiated service session (part of the POLICY_DATA object) π§© At a minimum, the authorization data includes the identity of the AE (like the SIP proxy) and an identifier for the application-service session the QoS resources are being requested for π
The first QoS-aware Network Element catches the QoS NSLP Reserve message and processes it π‘οΈ The NE uses the Diameter QoS application to ask for authorization of the reservation request πββοΈ The identity of the AE (here, the SIP server co-located with a Diameter server) goes into the Destination-Host AVP. Any extra session authorization data gets wrapped up in the QoS-Authorization-Data AVP, and the description of the QoS resources goes into the QoS-Resources AVP π¦ These AVPs get packed into a QoS Authorization Request message and sent to the AE π
The QAR message gets routed through the AAA network to the AE π The AE checks the requested QoS against the QoS resources negotiated for the service session, then replies with a QoS-Authorization-Answer (QAA) message π§ The QAA carries the authorization result (Result-Code AVP), the description of the authorized QoS parameters (QoS-Resources AVP), and the duration of the authorization session (Authorization-Lifetime AVP) β³
Last step: the NE talks to the Traffic Control function, installs the authorized QoS resources, and forwards the QoS NSLP reserve message further along the data path π£οΈ The NE may also act as a signaling proxy and handle the QoS signaling (like starting or stopping QoS signaling) based on the QoS decision it got from the Authorizing Entity π¦
9.2. Example Call Flow for Pull Mode (Failure Case) π
okay so this one literally repeats the 9.1 scenario, but this time the authorization FAILS π Failures can pop up at all sorts of steps during the protocol run, and here we're pretending the Diameter QAR request that the Diameter server handles comes back unsuccessful. the QAA replies with a permanent error, "DIAMETER_AUTHORIZATION_REJECTED" (5003), tucked into the Result-Code AVP π when the NE gets that response, it stops the QoS reservation signaling going downstream and sends an error message back to the end-host that started the QoS request. the QoS NSLP response message carries an INFO_SPEC object saying the permanent failure is "Authorization failure" (0x02) π
End-Host SIP Proxy Correspondent
requesting QoS (DQA Server) Node
| | |
..|...................SIP Signaling..........|..............|..
. | Invite (SDP) | | .
. +.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-> | .
. | 100 Trying | | .
. <.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-+ Invite (SDP)| .
. | +-.-.-.....-.-.> .
. | | 180 SDP' | .
. | <-.-.-.....-.-.+ .
. | +--------+--------+ | .
. | |Authorize session| | .
. | | parameters | | .
. | 180 (Session parameters) +--------+--------+ | .
. <.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-+ | .
..|..........................................|... ..........|..
| | |
| +------------+ | |
| | NE | | |
| |(DQA Client)| | |
| +------+-----+ | |
| | | |
|QoS NSLP Reserve | | |
+------------------> QAR | |
| (POLICY_DATA>v +- - - - -<<AAA>>- - - -> |
| QSPEC) v >===>(Destination-Host, | |
| v >=======>QoS-Authorization-Data++------------+ |
| >===========>QoS-Resources) |Authorize | |
| | |QoS resources| |
| | ++------------+ |
| | QAA | |
| <- - - - -<<AAA>>- - - -+ |
| |(Result-Code = 5003) | |
| | | |
|QoS NSLP Response | | |
|(with error 0x02) | | |
<------------------+ | |
| | | |
| | | |
.-.-.-.-. SIP signaling
--------- QoS NSLP signaling
- - - - - Diameter QoS Application messages
========= Mapping of objects between QoS and AAA protocol
Figure 13: QoS Authorization Example - Pull Mode (Failure Case)
9.3. Example Call Flow for Push Mode π¦
this section shows how the end-host and the Diameter QoS application entities chat with each other in Push mode β¨ the application-layer signaling runs over SIP in this example, the QoS resource reservation signaling is done with the QoS NSLP, and the Diameter QoS application (DQA) is the one that does the authorizing of the QoS reservation request π
End-Host NE SIP Proxy Correspondent
requesting QoS (DQA Client) (DQA Server) Node
| | | |
..|..................|...SIP Signaling..........|..............|..
. | Invite(SDP Offer)| | | .
. +.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.+-.-.-.-.-.-.->| .
. | | | 180 | .
. |<-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.+-.-.-.-.-.-.-.| .
..|.............................................|..............|..
| | +---------+-------------+|
| | | Authorize Request ||
| | | Keep Session Data ||
| | |/Authz-time,Session-Id/||
| | +---------+-------------+|
| | | |
| |<-- - -- - QIR - -- - -- -+ |
| |(Initial Request,Decision | |
| |(QoS-Resources,Authz-time)| |
| +-------+---------+ | |
| |Install QoS State| | |
| | + | | |
| | Authz Session | | |
| | /Authz-time/ | | |
| +-------+---------+ | |
| + - - -- - QIA - - - - - ->| |
| | (Result-Code, | |
| | QoS-Resources) | |
| | +----------+------------+ |
| | | Successful | |
| | | QoS Reservation | |
| | +----------+------------+ |
..|.............................................|..............|..
. | | | | .
. | | | 200 OK (SDP)| .
. | | <-.-.-.....-.-.+ .
. | | +--------+-----------+ | .
. | | | Activate Session | | .
. | | | Parameters | | .
. | | +--------+-----------+ | .
. | 200 (SDP) | | | .
. <.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.+ | .
..|.............................................|..............|..
| <- - - - - - RAR - - - - - + |
| +---------+--------+ | |
| |Activate QoS State| | |
| +---------+--------+ | |
| +- - - - - - RAA - - - - - > |
| | |
/------------------+-----Data Flow---------------------------\
\------------------+-----------------------------------------/
| | |
.-.-.-.-. SIP signaling
- - - - - Diameter QoS Application messages
Figure 14: QoS Authorization Example - Push Mode
the communication kicks off with SIP signaling between the two endpoints and the SIP proxy, which negotiates and authorizes the requested service and its parameters (see Figure 14) πΈ as part of that, the SIP proxy checks whether the user at Host A is allowed to use the requested service (and possibly whether they can be charged for using it) π°
there are a few implementation choices for deciding when to kick off the QoS reservation π§ [MMUSIC-MEDIA] talks about this, focusing on firewalling. in our example, the DQA server gets triggered to authorize the QoS request based on the session parameters from the Session Description Protocol (SDP) payload, and it uses a QIR message to do that π«Ά for this message flow, we assume a two-stage commit, which means the SIP proxy talks to the NE twice. first, it only prepares the QoS reservation, and then, once the 200 OK arrives, the QoS reservation gets activated β¨
this example doesn't explain how the DQA server figures out which DQA client to contact. we assume pre-configuration here π either way, the address of the DQA client goes into the Destination-Host AVP, the description of the QoS resources goes into the QoS-Resources AVP, and the length of the authorization session is carried in the Authorization-Lifetime AVP π
when the DQA client gets the QIR, it talks to the Traffic Control function and reserves the authorized QoS resources accordingly π₯ at this point the QoS reservation is not yet activated, so no cap, it's still waiting in the wings π
when a 200 OK comes back, the DQA server may verify the accepted QoS against the pre-authorized QoS resources, and then send a Diameter RAR message to the DQA client in the NE to activate the installed policies and commit the resource allocation π
10. IANA Considerations π
this section lists the namespaces that were either created in this specification or had their values assigned to existing namespaces managed by IANA π
10.1. AVP Codes πΈ
IANA has allocated two AVP codes to the registry defined in [RFC3588]:
Registry:
AVP Code AVP Name Reference
-----------------------------------------------------------
579 QoS-Authorization-Data Section 7.2
580 Bound-Auth-Session-Id Section 7.2
10.2. Application IDs π¦
IANA has allocated the following application ID from the registry defined in [RFC3588] (using the next available value from the 7-16777215 range).
Registry:
ID values Name Reference
-----------------------------------------------------------
9 Diameter QoS application Section 5
10.3. Command Codes π§
IANA has allocated command code values from the registry defined in [RFC3588].
Registry:
Code Value Name Reference
-----------------------------------------------------------
326 QoS-Authorization-Request (QAR) Section 5.1
326 QoS-Authorization-Answer (QAA) Section 5.2
327 QoS-Install-Request (QIR) Section 5.3
327 QoS-Install-Answer (QIA) Section 5.4
11. Security Considerations π‘οΈβ¨
okay bestie, security is where things get dramatic π this doc is about authorizing a QoS reservation at a third-party entity. the Authorizing Entity needs enough info to make that call, and that info can come from a few places: the application-layer signaling, Diameter (with its own security mechanisms), policy info stored with a AAA server, and a QoS signaling protocol. no cap, it's a whole team effort π«Ά
Here's the rundown on Diameter QoS between an Authorizing Entity and a Network Element. Security between those two has four parts: authentication, authorization, integrity, and confidentiality. Let's get into each one π
Authentication is about confirming who sent each datagram. If Diameter messages between the Authorizing Entity and the Network Element aren't authenticated, the Network Element's whole job can get seriously jeopardized π± An attacker could pretend to be a "legitimate" Authorizing Entity and allocate resources, change resource assignments, or free resources. The adversary could also mess with the Network Element's state, like setting the allowed bandwidth to zero or giving the entire available bandwidth to one flow. That's a denial-of-service attack, and it's giving chaos π
Authentication also goes the other way. If the Network Element isn't authenticated to an Authorizing Entity, an attacker could mess with the policy-based admission control the Authorizing Entity runs, so it ends up with a wrong view of the resources in use across the network. Failing to provide the required credentials should be subject to logging π
Authorization is about whether a particular Authorizing Entity is allowed to signal a Network Element for one or more applications, following a certain policy profile. Failing this check might mean someone's trying to steal resources, or it could just be admin or credential problems. Either way, the Network Element should take the proper measures to log those attempts π
Integrity makes sure a Diameter message hasn't been maliciously altered. Without it, in an untrusted environment, an imposter could change the messages exchanged between a Network Entity and an Authorizing Entity, and that could cause a denial of service π€
Confidentiality means the signaling data is only readable by the entities that are supposed to see it π When signaling messages from the Application Server travel toward the Network Element through the Authorizing Entity and cross untrusted networks, a lack of confidentiality lets people eavesdrop and do traffic analysis. Diameter QoS messages can also carry authorization tokens, and those need confidentiality protection too π
Diameter has security mechanisms for all of this. Specifically, it offers communication security between neighboring Diameter peers using Transport Layer Security (TLS) or IPsec π¦ Authorization capabilities are application specific and part of the overall implementation, so that bit is up to the implementation.
12. Acknowledgements πΈ
big thank-you energy to John Loughney and Allison Mankin for their input on this doc π In September 2005, Robert Hancock, Jukka Manner, Cornelia Kappler, Xiaoming Fu, Georgios Karagiannis, and Elwyn Davies gave a detailed review π Robert also gave the authors good feedback earlier in 2005. Jerry Ash sent review comments in late 2005/early 2006, and Rajith R contributed some inputs in early 2007 β¨
We also wanna thank Alexey Melnikov, Adrian Farrel, and Robert Sparks for their IESG reviews π
13. Contributors π§
The authors would like to thank Tseno Tsenov and Frank Alfano for kicking off the Diameter Quality of Service work in the IETF π They made huge contributions and were the driving force behind the first few draft versions. Legends only π₯Ή
14. References π
14.1. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC3588] Calhoun, P., Loughney, J., Guttman, E., Zorn, G., and
J. Arkko, "Diameter Base Protocol", RFC 3588,
September 2003.
[RFC4005] Calhoun, P., Zorn, G., Spence, D., and D. Mitton,
"Diameter Network Access Server Application",
RFC 4005, August 2005.
[RFC5624] Korhonen, J., Tschofenig, H., and E. Davies, "Quality
of Service Parameters for Usage with Diameter",
RFC 5624, August 2009.
[RFC5777] Korhonen, J., Tschofenig, H., Arumaithurai, M.,
Jones, M., and A. Lior, "Traffic Classification and
Quality of Service (QoS) Attributes for Diameter",
RFC 5777, February 2010.
14.2. Informative References
[MMUSIC-MEDIA] Stucker, B. and H. Tschofenig, "Analysis of Middlebox
Interactions for Signaling Protocol Communication
along the Media Path", Work in Progress, March 2009.
[NSIS-NTLP] Schulzrinne, H. and M. Stiemerling, "GIST: General
Internet Signalling Transport", Work in Progress,
June 2009.
[NSIS-QOS] Manner, J., Karagiannis, G., and A. McDonald, "NSLP
for Quality-of-Service Signaling", Work in Progress,
January 2010.
[RFC2205] Braden, B., Zhang, L., Berson, S., Herzog, S., and S.
Jamin, "Resource ReSerVation Protocol (RSVP) --
Version 1 Functional Specification", RFC 2205,
September 1997.
[RFC2211] Wroclawski, J., "Specification of the Controlled-Load
Network Element Service", RFC 2211, September 1997.
[RFC2212] Shenker, S., Partridge, C., and R. Guerin,
"Specification of Guaranteed Quality of Service",
RFC 2212, September 1997.
[RFC2474] Nichols, K., Blake, S., Baker, F., and D. Black,
"Definition of the Differentiated Services Field (DS
Field) in the IPv4 and IPv6 Headers", RFC 2474,
December 1998.
[RFC2753] Yavatkar, R., Pendarakis, D., and R. Guerin, "A
Framework for Policy-based Admission Control",
RFC 2753, January 2000.
[RFC2865] Rigney, C., Willens, S., Rubens, A., and W. Simpson,
"Remote Authentication Dial In User Service
(RADIUS)", RFC 2865, June 2000.
[RFC3261] Rosenberg, J., Schulzrinne, H., Camarillo, G.,
Johnston, A., Peterson, J., Sparks, R., Handley, M.,
and E. Schooler, "SIP: Session Initiation Protocol",
RFC 3261, June 2002.
[RFC3313] Marshall, W., "Private Session Initiation Protocol
(SIP) Extensions for Media Authorization", RFC 3313,
January 2003.
[RFC3520] Hamer, L-N., Gage, B., Kosinski, B., and H. Shieh,
"Session Authorization Policy Element", RFC 3520,
April 2003.
[RFC3521] Hamer, L-N., Gage, B., and H. Shieh, "Framework for
Session Set-up with Media Authorization", RFC 3521,
April 2003.
[RFC4282] Aboba, B., Beadles, M., Arkko, J., and P. Eronen,
"The Network Access Identifier", RFC 4282,
December 2005.
[RFC4566] Handley, M., Jacobson, V., and C. Perkins, "SDP:
Session Description Protocol", RFC 4566, July 2006.
[RFC5246] Dierks, T. and E. Rescorla, "The Transport Layer
Security (TLS) Protocol Version 1.2", RFC 5246,
August 2008.
Authors' Addresses π
Dong Sun (editor)
Alcatel-Lucent
600 Mountain Ave
Murray Hill, NJ 07974
USA
Phone: +1 908 582 2617
EMail: d.sun@alcatel-lucent.com
Peter J. McCann
Motorola Labs
1301 E. Algonquin Rd
Schaumburg, IL 60196
USA
Phone: +1 847 576 3440
EMail: pete.mccann@motorola.com
Hannes Tschofenig
Nokia Siemens Networks
Linnoitustie 6
Espoo 02600
Finland
Phone: +358 (50) 4871445
EMail: Hannes.Tschofenig@gmx.net
URI: http://www.tschofenig.priv.at
Tina Tsou
Huawei
Shenzhen,
P.R.C
EMail: tena@huawei.com
Avri Doria
Lulea University of Technology
Arbetsvetenskap
Lulea, SE-97187
Sweden
EMail: avri@ltu.se
Glen Zorn (editor)
Network Zen
1310 East Thomas Street
#306
Seattle, Washington 98102
USA
Phone: +1 (206) 377-9035
EMail: gwz@net-zen.net
That's the whole RFC, bestie! ππ We made it through all 11 parts π₯³
π¦ where this page comes from
- ietf: rfc5866 2010-05
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms