Ads

Tuesday, March 10, 2009

All about Diameter



Diameter is an Authentication, Authorization and Accounting (AAA) protocol developed by the Internet Engineering Task Force (IETF). Diameter is used to provide AAA services for a range of access technologies. Instead of building the protocol from scratch, Diameter is loosely based on the Remote Authentication Dial In User Service (RADIUS)1 [RFC2865], which has previously been used to provide AAA services, at least for dial-up and terminal server access environments.

The final Diameter protocol is actually split into two parts: Diameter Base Protocol and Diameter applications. The base protocol is needed for delivering Diameter data units, negotiating capabilities, handling errors and providing for extensibility. A Diameter application defines application-specific functions and data units. Each Diameter application is specified separately.

Diameter protocol uses both TCP and SCTP with IPsec(IP security) and TLS(Transport lavel security).

* Any node here can initiate request, since its a peer to peer protocol
* Each diameter node maintains peer tables (contains list of known peers)

Diagram Which shows Sh and Cx interface interaction using Diameter Protocol taking IMS in consideration



Base Message Code

274 Abort-Session-Request ASR
274 Abort-Session-Answer ASA
271 Accounting-Request ACR
271 Accounting-Answer ACA
257 Capabilities-Exchange-Request CER
257 Capabilities-Exchange-Answer CEA
280 Device-Watchdog-Request DWR
280 Device-Watchdog-Answer DWA
282 Disconnect-Peer-Request DPR
282 Disconnect-Peer-Answer DPA
258 Re-Auth-Request RAR
258 Re-Auth-Answer RAA
275 Session-Termination-Request STR
275 Session-Termination-Answer STA

Sh Message Code

306 User-Data-Request UDR
306 User-Data-Answer UDA
307 Profile-Update-Request PUR
307 Profile-Update-Answer PUA
308 Subscriber-Notification-Request SNR
308 Subscriber-Notification-Answer SNA
309 Push-Notification-Request PNR
309 Push-Notification-Answer PNA


Sip Message Code

283 User-Authorization-Request UAR
283 User-Authorization-Answer UAA
284 Server-Assignment-Request SAR
284 Server-Assignment-Answer SAA
285 Location-Info-Request LIR
285 Location-Info-Answer LIA
286 Multimedia-Authorization-Request MAR
286 Multimedia-Authorization-Answer MAA
287 Registration-Termination-Request RTR
287 Registration-Termination-Answer RTA
288 Push-Profile-Request PPR
288 Push-Profile-Answer PPA


AVP Codes with little description

Code Description References

--------------------------------------------
1
-
255 Radius attributes. RFC2865
--------------------------------------------
256 TBE
257 Host-IP-Address. RFC 3588
258 Auth-Application-Id. RFC 3588
259 Acct-Application-Id. RFC 3588
260 Vendor-Specific-Application-Id. RFC 3588
261 Redirect-Host-Usage. RFC 3588
262 Redirect-Max-Cache-Time. RFC 3588
263 Session-Id.
264 Origin-Host.
265 Supported-Vendor-Id.
266 Vendor-Id.
267 Firmware-Version.
268 Result-Code.
269 Product-Name.
270 Session-Binding.
271 Session-Server-Failover.
272 Multi-Round-Time-Out.
273 Disconnect-Cause.
274 Auth-Request-Type.
275 TBE
276 Auth-Grace-Period.
277 Auth-Session-State.
278 Origin-State-Id.
279 Failed-AVP.
280 Proxy-Host.
281 Error-Message.
282 Route-Record.
283 Destination-Realm.
284 Proxy-Info.
285 Re-Auth-Request-Type.
286 TBE
-
290
291 Authorization-Lifetime.
292 Redirect-Host.
293 Destination-Host.
294 Error-Reporting-Host.
295 Termination-Cause. RFC 4005
296 Origin-Realm.
297 Experimental-Result.
298 Experimental-Result-Code.
299 Inband-Security-Id.
300 Globallee unique Address
301 Address Realm
302 Logical Access Id
303 Initial Gate Setting
304 QoS Profile
305 IP Connectivity Status ES 283 034
306 Access Network Type
307 Aggregation Network Type
308 Maximum Allowed Bandwidth UL
309 Maximum Allowed Bandwidth DL
310 Maximum Priority
311 Transport Class
312 Application Class ID
313 Physical Access ID
314 Initial-Gate-Setting-ID
315 QoS-Profile-ID
------------------------------------------------------------------
316
-
349 Reserved for future use in ES 283 034
------------------------------------------------------------------
350 Location Information
351 RACS Contact Point
352 Terminal Type
353 Requested Information ES 283 035
354 Event-Type
355 Civic-Location
356 Geospatial-Location
500 Line-Identifier
-----------------------------------------------------------------
357
-
399 Reserved for future use in ES 283 035
----------------------------------------------------------------
400 Session Bundle Id
--------------------------------------------------------------------
401
-
439 Reserved for future use in ES 283 026
-------------------------------------------------------------------
440 Privacy-Indicator
------------------------------------------------------------------
441
-
449 Reserved for future use in TS 183 020 TS 183 020
-------------------------------------------------------------------
450 Binding information
451 Binding input list
452 Binding output list
453 V6 transport address
454 V4 transport address TS 183 017
455 Port number
456 Reservation class
457 Latching indication
458 Reservation priority
459 Service-Class
460 Overbooking-indicator
---------------------------------------------------------------------
461
-
499 Reserved for future use in TS 183 017
---------------------------------------------------------------------
501 ETSI-SIP-Authenticate
502 ETSI-SIP-Authorization
503 ETSI-SIP-Authentication-Info
504 ETSI-Digest-Realm
505 ETSI-Digest-Nonce
506 ETSI-Digest-Domain
507 ETSI-Digest-Opaque
508 ETSI-Digest-Stale
509 ETSI-Digest-Algorithm
510 ETSI-Digest-QoP
511 ETSI-Digest-HA1
512 ETSI-Digest-Auth-Param TS 183 033
513 ETSI-Digest-Username
514 ETSI-Digest-URI
515 ETSI-Digest-Response
516 ETSI-Digest-CNonce
517 ETSI-Digest-Nonce-Count
518 ETSI-Digest-Method
519 ETSI-Digest-Entity-Body-Hash
520 ETSI-Digest-Nextnonce
521 ETSI-Digest-Response-Auth
-------------------------------------------------------------------------
522
-
549 Reserved for future use in TS 183 033
------------------------------------------------------------------------
550 TBE
-----------------------------------------------------------------------
551
-
599 Reserved for future use in TS 183 060
------------------------------------------------------------------------
600 CNGCF-Address
601 SIP-Outbound-Proxy/Public-Identity
602 Server-Name
603 ACS-Server
604 Location-Data
------------------------------------------------------------------------
605
-
628 Supported-Features
629 Feature-List-ID
630 Feature-List
631 Supported-Applications

619 Reserved for future use in(remaining) TS 183 059
-----------------------------------------------------------------------
620 TBE
-----------------------------------------------------------------------
620
-
649 Reserved for future use
-------------------------------------------------------------------------
700 User-Identity/MSISDN
702 User-Data
701 TBE
703 Data-Reference
704 Service-Indication
705 Subs-Req-Type
706 Requested-Domain
707 Current-Location
708 Identity-Set


RFCs can be used for detailed study

Diameter Base Protocol RFC3588

The Diameter base protocol is intended to provide an Authentication,
Authorization and Accounting (AAA) framework for applications such as
network access or IP mobility. Diameter is also intended to work in
both local Authentication, Authorization & Accounting and roaming
situations. This document specifies the message format, transport,
error reporting, accounting and security services to be used by all
Diameter applications. The Diameter base application needs to be
supported by all Diameter implementations.

Diameter Session Initiation Protocol (SIP) Application RFC4740

This document specifies the Diameter Session Initiation Protocol
(SIP) application. This is a Diameter application that allows a
Diameter client to request authentication and authorization
information. This application is designed to be used in conjunction
with SIP and provides a Diameter client co-located with a SIP server,
with the ability to request the authentication of users and
authorization of SIP resources usage from a Diameter server.

IP Multimedia (IM) Subsystem Sh interface Signalling flows and message contents
3GPP TS 29.328 V5.9.0 (2005-03)

This document presents the Sh interface related functional requirements of the communicating entities.
It gives a functional classification of the procedures and describes the procedures and message parameters.
Error handling flows, protocol version identification.


Sh Interface based on the Diameter protocol details

3GPP TS 29.329 V5.8.0 (2004-12)

The Diameter Base Protocol as specified in IETF RFC 3588 [4] shall apply except as modified by the defined support of the methods and the defined support of the commands and AVPs, result and event codes specified in clause 6 of this specification.