Re: [sipcore] Glare conditions in draft-ietf-sipcore-reinvite
OKUMURA Shinji <shinji.okumura@softfront.jp> Fri, 02 July 2010 01:54 UTC
Return-Path: <shinji.okumura@softfront.jp>
X-Original-To: sipcore@core3.amsl.com
Delivered-To: sipcore@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 246233A686B for <sipcore@core3.amsl.com>; Thu, 1 Jul 2010 18:54:25 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -96.858
X-Spam-Level:
X-Spam-Status: No, score=-96.858 tagged_above=-999 required=5 tests=[AWL=1.010, BAYES_00=-2.599, HELO_EQ_JP=1.244, HOST_EQ_JP=1.265, RELAY_IS_221=2.222, USER_IN_WHITELIST=-100]
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 jCav2uOmzG9w for <sipcore@core3.amsl.com>; Thu, 1 Jul 2010 18:54:24 -0700 (PDT)
Received: from sf-mail.softfront.co.jp (rt1.softfront.co.jp [221.186.247.166]) by core3.amsl.com (Postfix) with ESMTP id 5F0FB3A685C for <sipcore@ietf.org>; Thu, 1 Jul 2010 18:54:23 -0700 (PDT)
Received: from localhost (localhost.localdomain [127.0.0.1]) by sf-mail.softfront.co.jp (Postfix) with ESMTP id E2B9A42800F; Fri, 2 Jul 2010 10:54:32 +0900 (JST)
X-Virus-Scanned: amavisd-new at softfront.co.jp
Received: from sf-mail.softfront.co.jp ([127.0.0.1]) by localhost (sf-mail.softfront.co.jp [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id ratCs6VdF1Zr; Fri, 2 Jul 2010 10:54:27 +0900 (JST)
Received: from softfront.jp (p5042-ipngnfx01sapodori.hokkaido.ocn.ne.jp [114.160.211.106]) by sf-mail.softfront.co.jp (Postfix) with ESMTP id DDF8F42800C; Fri, 2 Jul 2010 10:54:26 +0900 (JST)
From: OKUMURA Shinji <shinji.okumura@softfront.jp>
To: SIPCORE <sipcore@ietf.org>
Date: Fri, 02 Jul 2010 10:54:20 +0900
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
X-Mailer: HidemaruMail 5.36 (WinNT,501)
In-Reply-To: <4C2B328F.8050601@ericsson.com>
References: <ABCB181D40FECDshinji.okumura@softfront.jp> <4C2AF154.9040905@ericsson.com> <53CB1844EA4162shinji.okumura@softfront.jp> <4C2B328F.8050601@ericsson.com>
Message-Id: <5ECB19897C8959shinji.okumura@softfront.jp>
Subject: Re: [sipcore] Glare conditions in draft-ietf-sipcore-reinvite
X-BeenThere: sipcore@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: SIP Core Working Group <sipcore.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/sipcore>, <mailto:sipcore-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/sipcore>
List-Post: <mailto:sipcore@ietf.org>
List-Help: <mailto:sipcore-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/sipcore>, <mailto:sipcore-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 02 Jul 2010 01:54:25 -0000
Hi Gonzalo, I arrange my comments to clarify the issues. First, as a precondition for new rules, this text updates RFC3261. And so it is necessary to minimize the change in consideration of backward compatibility. I think this principle should be given priority to over the KISS principle. Therefore we should clarify not a sufficient condition but a necessary and sufficient condition. Second, you describe the rules about O/A and target-refresh at once. But I prefer to describe the two issues separately in order to clarify the reason why the rule is necessary. As we discuss the rules, it is acceptable result that the rules are unified accordingly. But it is premature at this moment in time. >>>>> The rules in RFC 3261 [RFC3261] do not cover collisions between an >>>>> UPDATE request and a reliable response to a re-INVITE (non-2xx final >>>>> responses to the re-INVITE are also considered reliable responses). >>>>> Since both the UPDATE request and the reliable response could be >>>>> requesting changes to the dialog or session state, it would not be >>>>> clear which changes would need to be executed first. >>>>> >>>>> If the UAS of a re-INVITE transaction receives and UPDATE request >>>>> after having sent a reliable response to the re-INVITE but before >>>>> having received the corresponding ACK or PRACK request, the UA SHOULD >>>>> return a 491 (Request Pending) response to the UPDATE request. >>>> >>>> I think this rule is more restrictive. >>>> IMO; >>>> In case that the reliable response is 18x, the UA SHOULD return a "500" response. >>>> In case that the reliable response is 2xx; >>>> If the 2xx carries an offer, the UA SHOULD return a "500" response. >>>> Otherwise, the UA MAY return a 2xx response. >>>> In case that the reliable response is 4xx, the UA MAY return a 2xx response. >>> >>> No, these rules would not address the glare situation. >From an offer-answer perspective, you should agree that there is no problem. >> I am very interested in this topic. Laying aside the >> response code, I don't understand the reason why these rules >> would not address the glare situation. >> Please explain the reason. >> >> In below cases, if a UAS returns a 2xx to the UPDATE, IMO >> no ploblem would be occured. > > as we discussed in the past, the collision of two given messages may or > may not be a problem. For example, two UPDATEs colliding each of them > updating a different parameter would not be a problem... but if they > update the same parameter the collision would get both UAs out of synch. > For the sake of simplicity, instead of having UAs implement complex > rules to figure out if a particular collision would cause problems, we > specify general rules that are (relatively) easy to implement by user > agents. > > So, let's take your example below > >> A B >> | | >> s0|re-INVITE (offer1) |s0 >> |------------------------------>| >> | 18x-rel(answer1)| >> |<------------------------------| >> s1|PRACK |s1 >> |------------------------------>| >> | 2xx-PRA| >> |<------------------------------|<-+ >> | 2xx| | >> | /--------------| | >> |UPDATE(offer2) / | | >> |==============/===============>| | accept PDATE >> | / 2xx-UPD(answer2)| | >> |<===========/==================| | >> s2| / |s2| >> |<---------/ | | >> |ACK | | >> |------------------------------>| | >> | | v > > > both the 2xx to the INVITE and the 2xx to the UPDATE can update the > dialog's target. As you see, the UAC receives them in a different order > than they were sent. So, for the UAC the latest target refresh was the > 2xx to the INVITE but for the UAS the latest target refresh was the 2xx > to the UPDATE. Your rules force a UAS to return a 491 response to the UPDATE. But if I understand a current RFCs correctly, a UAS may accept the UPDATE. Certainly, your rules are new normative definitions. I understand it. However if the 2xx to an UPDATE and the 2xx to a re-INVITE have the same Contact, there is no problem. And it is unnecessary to make an O/A exchange fail. In any cases, we can not deny the possibility that a legacy UAS returns a 2xx to the UPDATE with a different Contact. Therefore a UAC MUST be prepared to receive the 2xx. In this case, IMO UAC behavior are; 1. A UAC must treat the Contact in 2xx to an UPDATE as current remote target. 2. In below cases, a UAC should send new target refresh request. a. it has sent UPDATE, received 2xx to UPDATE, and then received 2xx to re-INVITE with a different Contact. b. it has received UPDATE, sent 2xx to UPDATE, and then received 2xx to re-INVITE with a different Contact. c. it has sent UPDATE, received 2xx to re-INVITE, and then received 2xx to UPDATE with a different Contact. Regards, Shinji Gonzalo Camarillo <Gonzalo.Camarillo@ericsson.com> Wed, 30 Jun 2010 15:03:27 +0300 >Hi Shinji, > >thanks for your comments. I already responded to your first example in >my previous email. In your second example, the ACK (which does not carry >an answer) is not a problem because it is not a target refresh request. > >Thanks, > >Gonzalo
- [sipcore] Glare conditions in draft-ietf-sipcore-… Gonzalo Camarillo
- Re: [sipcore] Glare conditions in draft-ietf-sipc… gao.yang2
- Re: [sipcore] Glare conditions in draft-ietf-sipc… OKUMURA Shinji
- Re: [sipcore] Glare conditions in draft-ietf-sipc… OKUMURA Shinji
- Re: [sipcore] Glare conditions in draft-ietf-sipc… gao.yang2
- Re: [sipcore] Glare conditions in draft-ietf-sipc… Gonzalo Camarillo
- Re: [sipcore] Glare conditions in draft-ietf-sipc… Harbhanu
- Re: [sipcore] Glare conditions in draft-ietf-sipc… gao.yang2
- Re: [sipcore] Glare conditions in draft-ietf-sipc… Gonzalo Camarillo
- Re: [sipcore] Glare conditions in draft-ietf-sipc… Gonzalo Camarillo
- Re: [sipcore] Glare conditions in draft-ietf-sipc… Gonzalo Camarillo
- Re: [sipcore] Glare conditions in draft-ietf-sipc… Gonzalo Camarillo
- Re: [sipcore] Glare conditions in draft-ietf-sipc… Brett Tate
- Re: [sipcore] Glare conditions in draft-ietf-sipc… OKUMURA Shinji
- Re: [sipcore] Glare conditions in draft-ietf-sipc… Gonzalo Camarillo
- Re: [sipcore] Glare conditions in draft-ietf-sipc… Gonzalo Camarillo
- Re: [sipcore] Glare conditions in draft-ietf-sipc… OKUMURA Shinji
- Re: [sipcore] Glare conditions in draft-ietf-sipc… Gonzalo Camarillo
- Re: [sipcore] Glare conditions in draft-ietf-sipc… Brett Tate
- Re: [sipcore] Glare conditions in draft-ietf-sipc… Gonzalo Camarillo
- Re: [sipcore] Glare conditions in draft-ietf-sipc… Brett Tate
- Re: [sipcore] Glare conditions in draft-ietf-sipc… gao.yang2
- Re: [sipcore] Glare conditions in draft-ietf-sipc… Paul Kyzivat
- Re: [sipcore] Glare conditions in draft-ietf-sipc… Gonzalo Camarillo
- Re: [sipcore] Glare conditions in draft-ietf-sipc… Gonzalo Camarillo
- Re: [sipcore] Glare conditions in draft-ietf-sipc… Paul Kyzivat
- Re: [sipcore] Glare conditions in draft-ietf-sipc… Brett Tate
- Re: [sipcore] Glare conditions in draft-ietf-sipc… Gonzalo Camarillo
- Re: [sipcore] Glare conditions in draft-ietf-sipc… Gonzalo Camarillo
- Re: [sipcore] Glare conditions in draft-ietf-sipc… gao.yang2
- Re: [sipcore] Glare conditions in draft-ietf-sipc… Paul Kyzivat
- Re: [sipcore] Glare conditions in draft-ietf-sipc… OKUMURA Shinji
- Re: [sipcore] Glare conditions in draft-ietf-sipc… OKUMURA Shinji
- Re: [sipcore] Glare conditions in draft-ietf-sipc… Gonzalo Camarillo
- Re: [sipcore] Glare conditions in draft-ietf-sipc… Gonzalo Camarillo
- Re: [sipcore] Glare conditions in draft-ietf-sipc… OKUMURA Shinji
- Re: [sipcore] Glare conditions in draft-ietf-sipc… Paul Kyzivat
- Re: [sipcore] Glare conditions in draft-ietf-sipc… Gonzalo Camarillo