Re: [Dime] Proposal for error response wording (issue 85)

Steve Donovan <srdonovan@usdonovans.com> Tue, 21 October 2014 08:37 UTC

Return-Path: <srdonovan@usdonovans.com>
X-Original-To: dime@ietfa.amsl.com
Delivered-To: dime@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 1F2111A0191 for <dime@ietfa.amsl.com>; Tue, 21 Oct 2014 01:37:40 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.11
X-Spam-Level:
X-Spam-Status: No, score=-1.11 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, SPF_NEUTRAL=0.779, T_HTML_ATTACH=0.01] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id zewNbmcLqf0e for <dime@ietfa.amsl.com>; Tue, 21 Oct 2014 01:37:35 -0700 (PDT)
Received: from biz131.inmotionhosting.com (biz131.inmotionhosting.com [74.124.197.190]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 525E71A01A8 for <dime@ietf.org>; Tue, 21 Oct 2014 01:28:03 -0700 (PDT)
Received: from 187.31.0.109.rev.sfr.net ([109.0.31.187]:55195 helo=b8e856229362.netpoint.com) by biz131.inmotionhosting.com with esmtpsa (TLSv1:DHE-RSA-AES128-SHA:128) (Exim 4.82) (envelope-from <srdonovan@usdonovans.com>) id 1XgUnR-000CM5-91; Tue, 21 Oct 2014 01:28:02 -0700
Message-ID: <5446190F.2070804@usdonovans.com>
Date: Tue, 21 Oct 2014 10:27:59 +0200
From: Steve Donovan <srdonovan@usdonovans.com>
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:24.0) Gecko/20100101 Thunderbird/24.6.0
MIME-Version: 1.0
To: lionel.morand@orange.com, Ben Campbell <ben@nostrum.com>
References: <5444E8B9.8090002@usdonovans.com> <28879012-29FA-43F1-83EE-4B2A8539C7D8@nostrum.com> <22114_1413841265_54458171_22114_4224_1_6B7134B31289DC4FAF731D844122B36E8005B4@PEXCVZYM13.corporate.adroot.infra.ftgroup>, <AA1C6CD5-A07F-4DC0-8685-70AB5A4DF153@nostrum.com> <1979_1413867197_5445E6BD_1979_10335_1_s8e3rg7h7yyc2r23mds3uefp.1413867190363@email.android.com>
In-Reply-To: <1979_1413867197_5445E6BD_1979_10335_1_s8e3rg7h7yyc2r23mds3uefp.1413867190363@email.android.com>
Content-Type: multipart/mixed; boundary="------------080905060407090301080505"
X-AntiAbuse: This header was added to track abuse, please include it with any abuse report
X-AntiAbuse: Primary Hostname - biz131.inmotionhosting.com
X-AntiAbuse: Original Domain - ietf.org
X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12]
X-AntiAbuse: Sender Address Domain - usdonovans.com
X-Get-Message-Sender-Via: biz131.inmotionhosting.com: authenticated_id: srd+usdonovans.com/only user confirmed/virtual account not confirmed
Archived-At: http://mailarchive.ietf.org/arch/msg/dime/c33Ef4rLshoFSVTK91tdEqkuB1A
X-Mailman-Approved-At: Tue, 21 Oct 2014 01:53:01 -0700
Cc: "dime@ietf.org" <dime@ietf.org>
Subject: Re: [Dime] Proposal for error response wording (issue 85)
X-BeenThere: dime@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Diameter Maintanence and Extentions Working Group <dime.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/dime>, <mailto:dime-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/dime/>
List-Post: <mailto:dime@ietf.org>
List-Help: <mailto:dime-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/dime>, <mailto:dime-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 21 Oct 2014 08:37:40 -0000

I have incorporated the following text into the document in the 
existing, previously empty, section 7. Error Response Codes.

I will wait until tomorrow to close issue 85 to allow for discussion of 
the proposed wording.

I have attached the diff as this wording is not in the draft.

Regards,

Steve

---

    When a DOIC node rejects a Diameter request due to throttling, the
    DOIC node needs to select the appropriate error response code.  This
    determination is made based on the probability of the request
    succeeding if retried on a different path.

    The DIAMETER_TOO_BUSY response code SHOULD be used when the request
    is likely to succeed on a different path.

       For instance, if the request arrived at the reporting node without
       a Destination-Host AVP then the reporting node might determine
       that there is an alternative Diameter node that could successfully
       process the request and that retrying the transaction would not
       negatively impact the reporting node.

    The DIAMETER_UNABLE_TO_COMPLY response code SHOULD be used to
    indicate that the request should not be retried.  This is used when
    the request is not likely to succeed on a different path and retrying
    would consume valuable resources during an occurance of overload.

       For instance, if the request arrived at the reporting node with a
       Destination-Host AVP populated with its own Diameter identity then
       the reporting node can assume that retrying the request would
       result in it coming to the same reporting node.

       A second example is when an agent that supports the DOIC solution
       is preforming the role of a reacting node for a non supporting
       client.  Requests that are rejected as a result of DOIC throttling
       in this scenario would generally be rejected with a
       DIAMETER_UNABLE_TO_COMPLY response code.



On 10/21/14, 6:53 AM, lionel.morand@orange.com wrote:
> I agree.
>
> Lionel
>
> Envoyé depuis mon Sony Xperia SP d'Orange
>
> ---- Ben Campbell a écrit ----
>
>
>> On Oct 20, 2014, at 4:41 PM, <lionel.morand@orange.com> <lionel.morand@orange.com> wrote:
>>
>> Hi,
>>
>> I think that:
>> - TOO_BUSY should be restricted to server answer
> One of the reasons I think we need to state this by intended result and not by role in the network, is that I expect that an overloaded agent (according to the agent overload draft) might send TOO-BUSY. And a server that acts as an overload authority for a realm might send UNABLE-TO-[COMPLY or DELIVER] to a request that did not contain a Destination-Host AVP.
>
>> - UNABLE_TO_COMPLY as answer to non-supporting DOIC when no retransmission is required
>> - UNABLE_TO_DELIVER to supporting DOIC and to non-supporting DOIC node when retransmission to an alternate peer could be better.
>>
>> As a second step, we could enhance the answer message (in this draft or in a separate draft if preferred) with an error message (e.g. "Error-Diagnostic") that could provide further information to "new" node that will be then able to adapt their behavior.
>> So a supporting DOIC receiving UNABLE_TO_DELIVER/TOO_BUSY with an Error-Diagnostic set to e.g. "severe overload", besides the OLR in the answer, will know that retransmission on the path or a on a different path will likely cause the same error. If no error-diagnostic is sent back or ignored by the non-supporting-DOOIC node, we will go back to the situation prior this draft.
>>
>> Regards,
>>
>> Lionel
>>
>> -----Message d'origine-----
>> De : DiME [mailto:dime-bounces@ietf.org] De la part de Ben Campbell
>> Envoyé : lundi 20 octobre 2014 19:10
>> À : Steve Donovan
>> Cc : dime@ietf.org
>> Objet : Re: [Dime] Proposal for error response wording (issue 85)
>>
>> I agree that we should generalize these, but I think the direction is not quite right. More inline:
>>
>>> On Oct 20, 2014, at 5:49 AM, Steve Donovan <srdonovan@usdonovans.com> wrote:
>>>
>>> We came to the following agreements on error responses:
>>>
>>> - Servers rejecting a Diameter request due to an overload condition should send a 3002 DIAMETER_TOO_BUSY error response.
>>>
>>> - Agents rejecting a Diameter request due to an overload condition should send a 5012 DIAMETER_UNABLE_TO_COMPLY.
>>>
>>> I propose that we generalize this to the following:
>>>
>>> - Reporting nodes rejecting a Diameter request due to an overload condition SHOULD send a 3002 DIAMETER-TOO-BUSY error response.
>>>
>>> - Reacting nodes rejecting a Diameter request due to an overload condition SHOULD send a UNABLE-TO-COMPLY.
>> I don't think we should state this in terms of reaction and reporting nodes. I think we should generalize to expected behavior. Also, in the case where the downstream node does not support DOIC, I'm not sure it makes sense to say the throttling node is really a reporting node (for that particular relationship.)
>>
>> My suggestion is we say that, if the throttling node has sufficient information to determine that the request is not likely to succeed if retried on another path, it SHOULD send UNABLE-TO-COMPLY. If it does not have that information, it SHOULD send TOO-BUSY.   (we should discuss why this is not a MUST if we have the conditionals in place.)
>>
>> Then we could go on to say that a reaction node (or agent) would typically fall under the first category, and a reporting node (or server) would typically fall under the second. But there certainly may be cases where a reacting node does not know if other paths could work, and where a reporting node might know that they couldn't.
>>
>>
>>> This would mean that an agent acting as a reporting node (i.e.; server doesn't support DOIC or agent is acting as a server front end) would sent the TOO_BUSY response and an agent acting as a reacting node (i.e.; a client doesn't support DOIC) then it sends a UNABLE_TO_COMPLY response.
>>>
>>> I propose adding this to a new section 4.2.4.  The existing 4.2.4 on agent behavior will be deleted.
>>>
>>> I will hold off making this change until tomorrow (Tuesday morning).
>>>
>>> Regards,
>>>
>>> Steve
>>>
>>> _______________________________________________
>>> DiME mailing list
>>> DiME@ietf.org
>>> https://www.ietf.org/mailman/listinfo/dime
>> _______________________________________________
>> DiME mailing list
>> DiME@ietf.org
>> https://www.ietf.org/mailman/listinfo/dime
>>
>> _________________________________________________________________________________________________________________________
>>
>> Ce message et ses pieces jointes peuvent contenir des informations confidentielles ou privilegiees et ne doivent donc
>> pas etre diffuses, exploites ou copies sans autorisation. Si vous avez recu ce message par erreur, veuillez le signaler
>> a l'expediteur et le detruire ainsi que les pieces jointes. Les messages electroniques etant susceptibles d'alteration,
>> Orange decline toute responsabilite si ce message a ete altere, deforme ou falsifie. Merci.
>>
>> This message and its attachments may contain confidential or privileged information that may be protected by law;
>> they should not be distributed, used or copied without authorisation.
>> If you have received this email in error, please notify the sender and delete this message and its attachments.
>> As emails may be altered, Orange is not liable for messages that have been modified, changed or falsified.
>> Thank you.
>>
>
> _________________________________________________________________________________________________________________________
>
> Ce message et ses pieces jointes peuvent contenir des informations confidentielles ou privilegiees et ne doivent donc
> pas etre diffuses, exploites ou copies sans autorisation. Si vous avez recu ce message par erreur, veuillez le signaler
> a l'expediteur et le detruire ainsi que les pieces jointes. Les messages electroniques etant susceptibles d'alteration,
> Orange decline toute responsabilite si ce message a ete altere, deforme ou falsifie. Merci.
>
> This message and its attachments may contain confidential or privileged information that may be protected by law;
> they should not be distributed, used or copied without authorisation.
> If you have received this email in error, please notify the sender and delete this message and its attachments.
> As emails may be altered, Orange is not liable for messages that have been modified, changed or falsified.
> Thank you.
>
>