Re: [sip-overload] draft-ietf-soc-overload-control-01 submitted

Volker Hilt <volker.hilt@alcatel-lucent.com> Tue, 08 February 2011 22:09 UTC

Return-Path: <volker.hilt@alcatel-lucent.com>
X-Original-To: sip-overload@core3.amsl.com
Delivered-To: sip-overload@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 4BFC93A68BD for <sip-overload@core3.amsl.com>; Tue, 8 Feb 2011 14:09:39 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.599
X-Spam-Level:
X-Spam-Status: No, score=-6.599 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, RCVD_IN_DNSWL_MED=-4]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id ov5Wy8mWgTIw for <sip-overload@core3.amsl.com>; Tue, 8 Feb 2011 14:09:38 -0800 (PST)
Received: from ihemail2.lucent.com (ihemail2.lucent.com [135.245.0.35]) by core3.amsl.com (Postfix) with ESMTP id 0BF153A68B7 for <sip-overload@ietf.org>; Tue, 8 Feb 2011 14:09:37 -0800 (PST)
Received: from usnavsmail4.ndc.alcatel-lucent.com (usnavsmail4.ndc.alcatel-lucent.com [135.3.39.12]) by ihemail2.lucent.com (8.13.8/IER-o) with ESMTP id p18M9iiG012763 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for <sip-overload@ietf.org>; Tue, 8 Feb 2011 16:09:44 -0600 (CST)
Received: from USNAVSXCHHUB01.ndc.alcatel-lucent.com (usnavsxchhub01.ndc.alcatel-lucent.com [135.3.39.110]) by usnavsmail4.ndc.alcatel-lucent.com (8.14.3/8.14.3/GMO) with ESMTP id p18M9iv9032542 (version=TLSv1/SSLv3 cipher=RC4-MD5 bits=128 verify=NOT) for <sip-overload@ietf.org>; Tue, 8 Feb 2011 16:09:44 -0600
Received: from [135.112.131.41] (135.3.63.242) by USNAVSXCHHUB01.ndc.alcatel-lucent.com (135.3.39.110) with Microsoft SMTP Server (TLS) id 8.3.106.1; Tue, 8 Feb 2011 16:09:44 -0600
Message-ID: <4D51BF4B.5070500@alcatel-lucent.com>
Date: Tue, 8 Feb 2011 17:10:19 -0500
From: Volker Hilt <volker.hilt@alcatel-lucent.com>
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.13) Gecko/20101207 Thunderbird/3.1.7
MIME-Version: 1.0
To: <sip-overload@ietf.org>
References: <4D3876BF.9050009@bell-labs.com> <9ECCF01B52E7AB408A7EB85352642141027CFAFE@ftrdmel0.rd.francetelecom.fr> <4D503A57.6070206@bell-labs.com> <9ECCF01B52E7AB408A7EB8535264214102810BAC@ftrdmel0.rd.francetelecom.fr>
In-Reply-To: <9ECCF01B52E7AB408A7EB8535264214102810BAC@ftrdmel0.rd.francetelecom.fr>
Content-Type: text/plain; charset="ISO-8859-1"; format=flowed
Content-Transfer-Encoding: 8bit
X-Scanned-By: MIMEDefang 2.57 on 135.245.2.35
X-Scanned-By: MIMEDefang 2.64 on 135.3.39.12
Subject: Re: [sip-overload] draft-ietf-soc-overload-control-01 submitted
X-BeenThere: sip-overload@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: SIP Overload <sip-overload.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/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: Tue, 08 Feb 2011 22:09:39 -0000

Bruno, Vijay,

please see inline.

>> -----Message d'origine-----
>> De : Vijay K. Gurbani [mailto:vkg@bell-labs.com]
>> Envoyé : lundi 7 février 2011 19:31
>> À : CHATRAS Bruno RD-CORE-ISS
>> Cc : sip-overload@ietf.org
>> Objet : Re: [sip-overload] draft-ietf-soc-overload-control-01 submitted
>>
>> On 02/07/2011 09:55 AM, bruno.chatras@orange-ftgroup.com wrote:
>>> Two comments:
>>
>> Bruno: Thank you for a close read.  More inline.
>>
>>> 1) I think we need to say something about the interactions between
>>> this mechanism and B2BUAs. The configuration I have in mind is the
>>> following: INVITE requests from multiple end user devices are
>>> received by a proxy server which forwards them to a first Application
>>> Server (AS-A) acting as a B2BUA which in turn forwards it to another
>>> Application Server (AS-B). In case AS-B is overloaded, it makes sense
>>> to expect the proxy server to drop a percentage of new incoming
>>> requests based on the oc value rather than to rely on AS-A to do
>>> that. However, this requires AS-A to copy this parameter from one
>>> B2BUA side to the other.
>>
>> This is an interesting case, but I remain unsure on the need to
>> specify the behaviour of a B2BUA in the draft with respect to
>> overload control.  Clearly, if AS-B is overloaded, then its
>> direct upstream neighbour (AS-A) should perform overload control
>> for request destined to AS-B.
>>
>> With the suggested model of AS-A copying the overload control
>> parameters from AS-B, the proxy is performing overload control
>> for AS-B by reducing all messages going to AS-A, even those
>> messages that AS-A will not send to AS-B!  For this reason, I think
>> it is best that AS-A assume the role of dampening messages towards
>> AS-B.
>
There is already text in the draft that says that AS-A can forward 
overload control feedback considering AS-Bs status if it knows that AS-B 
is the only server it forwards traffic to.

If AS-A forwards traffic to other destinations, generating overload 
feedback would be harmful as it would throttle traffic to these 
destinations as well as Vijay has pointed out. This will get us into the 
domain of multi-hop overload control, which is difficult.

> [BC] I was trying to find a solution for the case where the proxy has been upgraded to support filtering of messages but not AS-A. I believe this will frequently happen in real networks (e.g. AS-A is an old system hosting basic telephony applications for user A while AS-B is a new system hosting a new overload control sensitive application, the core network proxies are upgraded).
>
If AS-A is not upgraded to support overload control, how would it 
forward the oc parameter?

>>
>>> 2) On new appendix B: I think Req23 should be changed from Yes to
>>> Partially. My understanding of the discussion we had on the list is
>>> that there are configurations where the requirement is hard to meet
>>> if the load balancer is not SIP-aware.
>>
>> I am happy to change REQ-23 from "Yes" to "Partial", but I'd like to
>> have some discussion on this.
>>
>> Those load balancers that are not SIP-aware will do load
>> balancing based on (say) destination IP address and destination
>> port number.  They may also remember the source IP address and
>> source port number and create a tuple
>> {src-ip, src-port, dest-ip, dest-port} when the first message from
>> src-ip:src-port goes to dest-ip:dest-port and use the tuple for
>> subsequent messages from src-ip:src-port.
>>
>> Now, such a SIP-unaware load balancer may operate on feedback from
>> its downstream server or it may operate without any feedback.  If such
>> a SIP-unaware load balancer receives some feedback from its downstream
>> server, it may load a policy that reduces traffic going to that down-
>> stream server.  So it seems that a SIP-unaware load balancer that
>> receives feedback from its downstream server may work as per REQ-23.
>> However, if the SIP server downstream from the load balancer supports
>> overload control, then it may get two treatments of reduced traffic:
>> one from the load balancer and one from the upstream SIP server (up-
>> stream of the load balancer as well).
>>
>> A SIP-unware load balancer that does not receive any feedback at all
>> from its downstream SIP server will not reduce traffic and it will
>> continue to send traffic to the downstream server that matches the
>> tuple (and it will create a new tuple when a new src-ip:src-port
>> presents itself).  However, the SIP server upstream of the load
>> balancer will still dampen requests going downstream, so maybe all
>> is well.
>>
>> Furthermore, to quote from [1], "...If the load balancer is not a
>> SIP entity, servers D, E, and F can report the overall load of the
>> server farm (i.e., the load of the virtual server) in their messages.
>
> [BC] They can do it if they have access to this information. However, in some cases they will be aware of their own load rather than the load of the virtual server.
>
>> As an alternative, one of the servers (e.g., server E) can report
>> overload on behalf of the server farm.  In this case, not all messages
>> contain overload control information and it needs to be ensured that
>> all upstream neighbors are periodically served by server E to received
>> updated information."
>
> [BC] I agree. However this indeed requires that load distribution be configured in such a way that all upstream neighbors are periodically served by server E
>>
>> To be frank, there is so much latitude in how a SIP server can
>> operate when the load balancer is not a SIP-aware entity that I
>> confess in being unable to articulate a coherent architecture on how
>> to meet this requirement.  It seems to me that under certain
>> assumptions REQ-23 can be met even when the load balancer is not SIP-
>> aware.
> [BC] I agree under certain assumptions REQ-23 can be met. That's why I think that "partial" is more suitable than "Yes". "Yes under certain assumptions" would be fine as well.
>
Vijay, Bruno, following the discussion above - I believe that REQ-23 can 
in fact be met for load balancers that are not SIP aware. Of course, 
there is always a way to build a system that does not work. But the key 
point is that this requirement can be met with the correct design.

My suggestion would be to document these approaches in the draft as this 
will be very relevant for implementers.

I think with this documentation, a "Yes" to REQ-23 is appropriate.

Thanks,

Volker (as individual)