Subject: Re: [AAA-WG]: What is Result Code Value ? In Multi-Failed AVP Cas e.

From: [email-masked]
Date: Fri, 19 Apr 2002 20:34:49 +0900

Hi, Jari
I agree with you.

This Issue mean...The Failed-AVP AVP (AVP Code 279) is of type Grouped, so
One answer message has just only one Result Code Avp and the Avp has also
only one error cause value.
In Failed Avp, all of the errored Avps may be encoded.
so,

Example) Failed-Avp Avp in ACA Message(From Failed ACR Message)

       +-------+-------+-------+-------+
    0 |        AVP Header              |   Head(Failed-AVP AVP)
       +-------+-------+-------+-------+
    8 | Errored Origin-Host Avp   |
      +-------+-------+-------+
  16 | Errored User-Name Avp    |
       +-------+-------+------+    Body(Failed-AVP AVP)
   24|Errored Record Number Avp|
       +-------+-------+-------+
  32 | Errored Record Type Avp   |
       +-------+-------+-------+-------+

Errored Origin-Host Avp(Code : Diameter Invalid Avp Bit : 3009)
Errored User-Name Avp(Code : Diameter Invalid Hdr Bit : 3007)
Errored Record Number Avp(Code : Diameter Invalid Avp Value : 5004)
Errored Record Type Avp(Code : Diameter Invalid Avp Value : 5004)

In that case Result Code Value has just only one cause, i think.
 so,
 1. It is difficult to match(the error code value,  Failed-AVP AVP)
 2. multiple error curred, but only one (which one ?------> first one is OK
! )
 3. Failed-AVP AVP is type Grouped.(I'm not sure why this is the grouped
type.)     

I think for debugging, 

Error processing of received a Failed-AVP AVP is an implementation
dependent case.
But the answer message should include multiple error codes in Failed-AVP
AVP i think.

I recommend..

 AVP Format 
  <Failed-AVP> ::= < AVP Header: 279 > 
       1* { 
             {Result-Code or Result-Code AVP}/*Following AVP's Error Code
Value included*/ 
             {AVP} 
            } 
/BGLee

[email-masked] wrote:
> Hi Jari, 
> 
> 
>>Me too. Should make clear though that the Diameter nodes are 
>>to report the 
>>first error they encounter, irrespective of potential other 
>>errors in the message. 
>> 
> 
> I don't think that this is important, actually.  Depending upon 
> how messages are processed (which is implementation dependent) then 
> different implementations may see different first errors.

Yes, I agree. But what I really meant was that the diameter 
nodes should report the first error THEY encounter (could 
be different by different implementations). I'm not sure we 
explicitly state this anywhere at the moment. Hmm... checking... 
how about changing the last paragraph of 7 from
    The Result-Code AVP contains additional errors conditions, and 
    defines the expected behavior of each.
to
    The Result-Code AVP describes the error that the Diameter node 
    encountered in its processing. In case there are multiple errors, 
    the Diameter node MUST report only the first error it encountered 
    (detected possibly in some implementation dependent order). The 
    specific errors that can be described by this AVP are described in 
    the following section.
Jari