Subject: [AAA-WG]: Failed-AVP AVP

From: Mark Eklund <[email-masked]>
Date: Fri, 6 Apr 2001 10:12:16 -0400 (EDT)

I've got a problem with the Failed-AVP AVP and a suggestion.

1. The documentation for a Result-Code AVP with a value of
   DIAMETER_MISSING_AVP states that 
         ..., a Failed-AVP AVP SHOULD be included in the message.
         The data portion of the Failed-AVP MUST only contain the AVP
         Code of the missing AVP.

   My question: Shouldn't the vendor ID be included somewhere?

2. Wouldn't it make more sense for the Failed-AVP AVP be of type
   grouped?  In this way, the vendor will be included and
   standard packet facilities can be used to access the AVP.

-mark

---

From: Patrice Calhoun <[email-masked]>
Date: Fri, 6 Apr 2001 07:34:35 -0700 (PDT)

>    My question: Shouldn't the vendor ID be included somewhere?

Right. This problem was already fixed for command codes in the -02 candidate,
but not for Failed-AVPs. A new AVP was introduced, and I made modifications to
support Failed-AVPs as well. The new text reads (TBD will be fixed):

10.1.3  Failed-Vendor-Id AVP

The Failed-Command-Code-Vendor-Id AVP (AVP Code TBD) is of type
Unsigned32 and MUST be present if a vendor-specific Command-Code
or AVP caused the error.

>    standard packet facilities can be used to access the AVP.

This would be useful if many different Failed-AVPs needed to be returned, but
I am not sure this would really happen. What does the WG think about this one??
 PatC

---

From: Mark Eklund <[email-masked]>
Date: Mon, 9 Apr 2001 10:19:22 -0400 (EDT)

Pat,

On Fri, 6 Apr 2001, Patrice Calhoun wrote:

<text elided>

> I am not sure this would really happen. What does the WG think about this one??

I was thinking that Grouped would be better suited for this than
Octetstring even if there were always only one AVP.  Here are my
reasons:

1. You get the Vendor-Id for free.

2. The Vendor-Id is associated with only one AVP.  For example,
   currently, if you have two Failed-AVPs and Failed-Vendor-Id
   AVPs in a packet, are both Failed-AVPs vendor specific, the
   one before the Failed-Vendor-Id, or the one after the
   Failed-Vender-Id??
 
3. Sniffer tools like ethereal understand the type Grouped
   and can dump the AVP and its contents easily.

4. You can use existing APIs to create the grouped AVP.  With
   Octetstring, you have to do an endian conversion before
   sending it.

5. If you are returning a DIAMETER_INVALID_AVP_VALUE, the
   offending value can easily be included.

-mark