Subject: [AAA-WG]: Use of Requested-Service-Unit in D-CCA

From: "Glass, Cameron, Global IT" <[email-masked]>
Date: Wed, 28 Apr 2004 14:12:32 +0100

Hi,

In CC-04 section 8.16 (4th paragraph) it states:

"  The Requested-Service-Unit AVP MAY contain the amount of requested 
   service units or the requested monetary value. It MUST be present in 
   the initial interrogation and within the intermediate interrogations 
   where new quota is requested. If the credit-control client does not 
   include the Requested-Service-Unit AVP in a request command, for 
   instance because it has determined that the end-user terminated the 
   service, the server MUST debit the used amount from the user's account 
   but MUST NOT return a new quota in the corresponding answer. "

This seems to mean that there are circumstances when the Requested-Service-Unit AVP must be sent but need not contain any amount of requested units or money.

Does this really mean that Requested-Service-Unit can be sent by the client with no other AVPs grouped within it?  In other words it would be an AVP with no data field and is effectively acting as a boolean.

Is this accepted as good practice in Diameter?

Would it be possible to define other AVPs in an application that had no data fields and acted as a boolean type?

Regards,

Cameron.

Cameron Glass
Global IT Designer
Global IT 
Vodafone Group Technology & Business Integration

---

From: <[email-masked]>
Date: Wed, 28 Apr 2004 17:40:51 +0300

Hi Cameron,

> This seems to mean that there are circumstances when the 
> Requested-Service-Unit AVP must be sent but need not contain 
> any amount of requested units or money.

Yes, correct. In particular, such circumstance is when the AVP
is used in the M-S-C-C grouped AVP. The client includes the empty
R-S-U AVP to indicate that a quota is requested.

> Does this really mean that Requested-Service-Unit can be sent 
> by the client with no other AVPs grouped within it?  In other 
> words it would be an AVP with no data field and is 
> effectively acting as a boolean.

Yes. You may note from the R-S-U AVP definition that all AVPs 
within it are optional. 

> Is this accepted as good practice in Diameter?

The data field of an AVP may be zero or more octets (RFC 3588).
So long as the semantic of the AVP allows an empty AVP, it is legal.

In the case of the R-S-U AVP the semantic of the empty AVP is 
"I request quota", therefore is not an error.
i.e. The R-S-U AVP may be used to request an amount of "credit" 
resources, if the client knows what it wants, or just to indicate
that a quota is requested. In the former case it must be sent with
an AVP in it including the amount of requested resources. In the
latter case, it is sent empty.

> Would it be possible to define other AVPs in an application 
> that had no data fields and acted as a boolean type?
 
If an application has such a need, why not.

Regards
Marco