Re: [sip-overload] draft-ietf-soc-overload-control-07 section 6.3 algorithm

Adam Roach <adam@nostrum.com> Fri, 09 March 2012 20:10 UTC

Return-Path: <adam@nostrum.com>
X-Original-To: sip-overload@ietfa.amsl.com
Delivered-To: sip-overload@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 12D0521F86DF for <sip-overload@ietfa.amsl.com>; Fri, 9 Mar 2012 12:10:48 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -102.512
X-Spam-Level:
X-Spam-Status: No, score=-102.512 tagged_above=-999 required=5 tests=[AWL=0.088, BAYES_00=-2.599, SPF_PASS=-0.001, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id QduBoNTia-08 for <sip-overload@ietfa.amsl.com>; Fri, 9 Mar 2012 12:10:47 -0800 (PST)
Received: from nostrum.com (nostrum-pt.tunnel.tserv2.fmt.ipv6.he.net [IPv6:2001:470:1f03:267::2]) by ietfa.amsl.com (Postfix) with ESMTP id 15FF821F86A6 for <sip-overload@ietf.org>; Fri, 9 Mar 2012 12:10:46 -0800 (PST)
Received: from dn3-228.estacado.net (vicuna-alt.estacado.net [75.53.54.121]) (authenticated bits=0) by nostrum.com (8.14.3/8.14.3) with ESMTP id q29KAiTT058827 (version=TLSv1/SSLv3 cipher=DHE-RSA-CAMELLIA256-SHA bits=256 verify=NO); Fri, 9 Mar 2012 14:10:45 -0600 (CST) (envelope-from adam@nostrum.com)
Message-ID: <4F5A63C4.5040600@nostrum.com>
Date: Fri, 09 Mar 2012 14:10:44 -0600
From: Adam Roach <adam@nostrum.com>
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:10.0.2) Gecko/20120216 Thunderbird/10.0.2
MIME-Version: 1.0
To: "Vijay K. Gurbani" <vkg@bell-labs.com>
References: <D05CF57C-B7B8-4187-BF55-70426DB3762D@estacado.net> <4F57B393.3020702@nostrum.com> <4F58F595.9070107@bell-labs.com> <4F58FACB.2020602@nostrum.com> <4F5902D9.1080006@bell-labs.com> <4F5904A0.5090709@nostrum.com> <4F5908C1.8060709@bell-labs.com> <4F5910BE.2010505@nostrum.com> <4F591621.7040805@bell-labs.com> <4F592494.2030207@nostrum.com> <4F5A5C95.1060905@bell-labs.com>
In-Reply-To: <4F5A5C95.1060905@bell-labs.com>
Content-Type: text/plain; charset="ISO-8859-1"; format="flowed"
Content-Transfer-Encoding: 7bit
Received-SPF: pass (nostrum.com: 75.53.54.121 is authenticated by a trusted mechanism)
Cc: sip-overload@ietf.org
Subject: Re: [sip-overload] draft-ietf-soc-overload-control-07 section 6.3 algorithm
X-BeenThere: sip-overload@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: SIP Overload <sip-overload.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/sip-overload>, <mailto:sip-overload-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/sip-overload>
List-Post: <mailto:sip-overload@ietf.org>
List-Help: <mailto:sip-overload-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/sip-overload>, <mailto:sip-overload-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 09 Mar 2012 20:10:48 -0000

On 3/9/12 1:40 PM, Vijay K. Gurbani wrote:
> On 03/08/2012 03:28 PM, Adam Roach wrote:
>> So, here's what I propose. It's based heavily on your most recent code,
>> but it handles inbound and outbound messages separately and explains
>> where the SIP messages are coming from:  [...]
>
> Adam: Sorry for the delay, was tied up in meetings.
>
> I went through your proposal of breaking the processing down.
> I am fine with it, however, I think there are some nuances in the
> "case inbound request" that we need to be more intelligent about.
>
> I think something along the following lines should be specified for
> that case:
>
> ...
> case inbound request:
>
> if (we are not in overload)  {
>    process_msg(sip_msg)
> }
> else {  // We are in overload
>    if (sip_msg has oc parameters)  {  // Upstream client supports oc
>       process_msg(sip_msg)  // and only sends important requests
>    }
>    else {  // Upstream client does not support oc
>       if (local_policy(sip_msg) says process message)  {
>          process_msg(sip_msg)
>       }
>       else  {
>          send_response(sip_msg, 503)
>       }
>    }
> }
>
> Here, if the above code is being executed by an overloaded
> proxy and the upstream client does not support overload, then the
> proxy has to consult local policy on what to do.  If local policy
> says process the request, then the request gets added to the work
> queue and re-appears back in the event loop and is handled by the
> "case outbound request" part of the code.
>
> If the above code is being executed by a terminal UAS under the same
> conditions (i.e., UAS is overloaded and the upstream client does
> not support overload), then local policy can decide whether to
> accept that request or send a 503.
>
> Thoughts?

That sounds good to me.

/a