Re: [sipcore] draft-roach-sipcore-rfc3265bis-00

"Christer Holmberg" <christer.holmberg@ericsson.com> Tue, 18 August 2009 17:52 UTC

Return-Path: <christer.holmberg@ericsson.com>
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 8B0CB28C351 for <sipcore@core3.amsl.com>; Tue, 18 Aug 2009 10:52:06 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -5.622
X-Spam-Level:
X-Spam-Status: No, score=-5.622 tagged_above=-999 required=5 tests=[AWL=0.627, BAYES_00=-2.599, HELO_EQ_SE=0.35, 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 R4u69wMeHKph for <sipcore@core3.amsl.com>; Tue, 18 Aug 2009 10:52:05 -0700 (PDT)
Received: from mailgw3.ericsson.se (mailgw3.ericsson.se [193.180.251.60]) by core3.amsl.com (Postfix) with ESMTP id C16093A6993 for <sipcore@ietf.org>; Tue, 18 Aug 2009 10:52:03 -0700 (PDT)
X-AuditID: c1b4fb3c-b7c01ae000002aae-39-4a8aea382b8a
Received: from esealmw126.eemea.ericsson.se (Unknown_Domain [153.88.253.125]) by mailgw3.ericsson.se (Symantec Mail Security) with SMTP id DA.B5.10926.83AEA8A4; Tue, 18 Aug 2009 19:51:52 +0200 (CEST)
Received: from esealmw113.eemea.ericsson.se ([153.88.200.4]) by esealmw126.eemea.ericsson.se with Microsoft SMTPSVC(6.0.3790.3959); Tue, 18 Aug 2009 19:51:52 +0200
X-MimeOLE: Produced By Microsoft Exchange V6.5
Content-class: urn:content-classes:message
MIME-Version: 1.0
Content-Type: text/plain; charset="US-ASCII"
Content-Transfer-Encoding: quoted-printable
Date: Tue, 18 Aug 2009 19:51:51 +0200
Message-ID: <CA9998CD4A020D418654FCDEF4E707DF0B1683FA@esealmw113.eemea.ericsson.se>
In-Reply-To: <EDC0A1AE77C57744B664A310A0B23AE20874FD06@FRMRSSXCHMBSC3.dc-m.alcatel-lucent.com>
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
Thread-Topic: draft-roach-sipcore-rfc3265bis-00
Thread-Index: AcodGW4n+3S/NSiORima/2vi8mr0YAB8az0AAD2MzdAACldswA==
References: <C0E80510684FE94DBDE3A4AF6B968D2D06311DBD@esealmw118.eemea.ericsson.se><4A85C195.4060903@nostrum.com> <CA9998CD4A020D418654FCDEF4E707DF0E3D8462@esealmw113.eemea.ericsson.se> <EDC0A1AE77C57744B664A310A0B23AE20874FD06@FRMRSSXCHMBSC3.dc-m.alcatel-lucent.com>
From: Christer Holmberg <christer.holmberg@ericsson.com>
To: "DRAGE, Keith (Keith)" <drage@alcatel-lucent.com>, Adam Roach <adam@nostrum.com>, Ian Elz <ian.elz@ericsson.com>
X-OriginalArrivalTime: 18 Aug 2009 17:51:52.0139 (UTC) FILETIME=[9145A1B0:01CA202C]
X-Brightmail-Tracker: AAAAAA==
Cc: sipcore@ietf.org
Subject: Re: [sipcore] draft-roach-sipcore-rfc3265bis-00
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: Tue, 18 Aug 2009 17:52:06 -0000

Hi, 

>>Again, a 3261 compliant proxy may Record-Route the SUBSCRIBE, but that

>>doesn't mean it will Record-Route the NOTIFY. It may simply be 
>>configured to Record-Route all dialog initiation requests.
> 
>
>It can only do this if it understands that SUBSCRIBE is a dialog
initiation request, and it can only do this if it implements either RFC
3265 or 3265bis. 

Yes, when thinking about it that is probably true.

>As I understood it, the behaviour described by Adam is already in RFC
3265, and therefore it is a non-conformant implementation of RFC 3265 if
it does something difference.

I know it is already in 3265.

I had some problems finding the text in 3261/16.7 which says that
additional 2xx respones for non-INVITEs are dropped. But, the text says
that additional 2xx responses for an INVITE are forwarded, so I guess
that implicitly means that 2xx responses for other methods are
dropped...

Regards,

Christer


> -----Original Message-----
> From: sipcore-bounces@ietf.org
> [mailto:sipcore-bounces@ietf.org] On Behalf Of Christer Holmberg
> Sent: Monday, August 17, 2009 11:19 AM
> To: Adam Roach; Ian Elz
> Cc: sipcore@ietf.org
> Subject: Re: [sipcore] draft-roach-sipcore-rfc3265bis-00
> 
> 
> Hi,
> 
> It's a while since I read the subscribe stuff, but I have some 
> questions/comments.
> 
> >>Now a more complex issue:
> >>
> >>You are proposing that the first NOTIFY establishes the SUBSCRIBE 
> >>dialog. What impact does this have on the establishment of
> the route
> >>set at the UAC as defined in RFC3261?
> >> 
> >From a practical perspective, it's the same as what we have
> in 3265 --
> >except that it's a little easier to implement at the subscriber.
> > 
> >Keep in mind that 3265 describes dialogs being established by NOTIFY 
> >requests -- this is not new in the 3265bis draft.
> >
> >The only difference in dialog establishment is that we're
> removing the
> >ability for a SUBSCRIBE 200 response to create a dialog.
> >
> >This is an extremely important point, so I'll repeat it: 
> this change is
> >not *ADDING* new behavior. It is *REMOVING* unnecessary
> behavior that
> >has been shown to cause problems.
> 
> Has it been considered that a forking proxy would forward multiple 
> SUBSCRIBE 200 responses instead?
> 
> Also, I know that 3261 says that only one final response is forwarded 
> for non-INVITE requests. I just wonder whether it means non-dialog 
> initiation requests. Because, what does a proxy do if it receives 
> additional 200 responses? I can't find any text about that in 3261.
> 
> >>Normal RFC3261 has the UAS route set taken from Record-Route in the 
> >>initial request. The UAS then copies the Record-Route back into the 
> >>2xx response (or reliable provisional response) which is
> then used by
> >>the UAC to set its the route set. This ensures that the
> route sets in
> >>the UAC and UAS align.
> >>
> >>Section 4.3 of the draft proposes that the initial
> SUBSCRIBE has the
> >>normal Record-Route which establishes the UAS route set but
> that the
> >>NOTIFY also has Record-Route performed by proxies. This
> leaves the
> >>possibility that the route set at the UAC and UAS may not align.
> >> 
> >Actually, it doesn't. As long as proxies follow the guidance in 4.3, 
> >then the route set in the SUBSCRIBE will be precisely
> identical to the
> >route set established by the NOTIFY.
> >Because of the Record-Route in the SUBSCRIBE, the NOTIFY
> will contain
> >Route header fields that guarantee that the NOTIFY traverses the 
> >proxies that Record-Route the SUBSCRIBE.
> >These proxies, by the normative requirement in 4.3, will then 
> >Record-Route the NOTIFY, which guarantees that the route set in the 
> >subscriber matches that of the notifier.
> >
> >If you think I'm confused about this in some way, please describe a 
> >concrete set of compliant proxy behaviors that can result in an 
> >asymmetrical route set, preferably using a sequence diagram.
> 
> I guess the UAS could simply copy the Record-Route into the NOTIFY, as

> it does in the 200 response. That way the proxies would not need to 
> add it.
> 
> But, again, wouldn't the easiest way be to make sure that all
> 200/202 responses are forwarded to the UAC?
> 
> I guess another option would be to send a 18x, in order to provide the

> Record-Route.
>  
> >>I also have a concern as to what will happen with the route
> set if the
> 
> >>SUBSCRIBE Record-Route is returned in the 2xx and the NOTIFY also 
> >>includes a Record-Route. Which one is used to establish the
> route set
> >>at the subscriber. Do we take the one which arrives first?
> >Do we take the one which arrives second? There is no issue
> if they are
> >the same but what if they differ?
> > 
> >As I mention above: In a compliant system, they can't differ. 
> >However, as we all know, systems don't always do the right
> thing. SBCs
> >can tinker with Route/Record-Route in ways that create
> asymmetric route
> >sets, even for normal INVITE/200/ACK transactions.
> 
> I am not really sure what is meant by "compliant system". A system may

> be RFC3261 compliant, which means they may add Record-Route the 
> SUBSCRIBE request, but they will not Record-Route the NOTIFY.
> 
> >With 3265, if there *were* a difference, your question is highly
> >relevant: the answer to "but what if they differ?" was a
> resounding "I
> >have no clue!"
> > 
> >Which is one of the key reasons why we made this change.
> > 
> >In 3265bis, the answer is straightforward: since the NOTIFY
> establishes
> >the dialog, the NOTIFY is where the route set comes from.
> > 
> >Really, the 200 response is kind of a throw-away message
> anyway. Even
> >with legacy 3265 behavior, if I have a SUBSCRIBE fork, and it 
> >establishes two dialogs, I'm going to have to take the route
> set for at
> >least one of the dialogs from the NOTIFY -- so I may as well always 
> >take it from the NOTIFY.
> >
> >>Should there be a requirement that proxies MUST include
> themselves in
> >>the NOTIFY Record-Route if they included themselves in
> the
> >>SUBSCRIBE Record-Route and to exclude themselves in the
> NOTUFY if they
> >>were not in the SUBSCRIBE Record-Route.
> >>
> > 
> >That's certainly the intention of 4.3. It's a bit tortured
> to imagine
> >that a proxy might be on the path of the NOTIFY without having 
> >Record-Routing the SUBSCRIBE. Nonetheless, I'm okay with prohibiting 
> >Record-Routing a NOTIFY unless you've also Record-Routed the
> associated
> >SUBSCRIBE; I'll add:
> > 
> >   Proxies that did not add a Record-Route header field to the
> >   initial SUBSCRIBE request MUST NOT add a Record-Route header
> >   field to any of the associated NOTIFY requests.
> 
> Don't you need a Proxy-Require option tag for that? 
> 
> Again, a 3261 compliant proxy may Record-Route the SUBSCRIBE, but that

> doesn't mean it will Record-Route the NOTIFY. It may simply be 
> configured to Record-Route all dialog initiation requests.
> 
> Regards,
> 
> Christer
> 
> 
> 
> 
> 
> 
> 
> >>If we are to use the Record-Route in the NOTIFY then the
> draft should
> >>explicitly state what should happen at the subscriber end. 
> Should the
> >>2xx response to the NOTIFY include a copy of the Record-Route taken 
> >>from the NOTIFY?
> >>
> > 
> >It doesn't matter.
> > 
> >>What does the notifier end do if it then receives this Record-Route?
> >>
> > 
> >It ignores it. There is no way to change a dialog route set
> (other than
> the remote target) mid-dialog.
> > 
> > 
> >>There is one more related issue:
> >>
> >>What happens if the 2xx to the SUBSCRIBE transaction is
> never received
> 
> >>by the subscriber. Based upon the non-INVITE client transaction in
> >>RFC3261 the termination of the transaction upon expiry of
> Timer F will
> 
> >>inform the TU. In normal cases the TU would terminate the
> transaction
> >>and drop the dialog In this case if the NOTIFY has been received 
> >>before the 2xx then this should be treated as the 2xx from the 
> >>transaction perspective. This almost goes as far as defining a 
> >>separate client SUBSCRIBE transaction.
> >> 
> >Again, this behavior was present in 3265, and quite deliberately so. 
> >Keep in mind: for any network that has even a single proxy
> that doesn't
> >Record-Route, the vast majority of SUBSCRIBE dialogs will
> be
> >established by the NOTIFY, not the 200 (since the NOTIFY
> will follow a
> >shorter path than the 200). And, with forking, all but one
> of the 200
> >responses will be discarded by the proxy anyway. You *really* don't
> want the system
> >behavior to vary based on which 200 response wins the race to the
> proxy.
> 
> _______________________________________________
> sipcore mailing list
> sipcore@ietf.org
> https://www.ietf.org/mailman/listinfo/sipcore
>