Re: [rtcweb] Proposal for PeerConnection cloning
Harald Alvestrand <harald@alvestrand.no> Mon, 07 May 2012 21:32 UTC
Return-Path: <harald@alvestrand.no>
X-Original-To: rtcweb@ietfa.amsl.com
Delivered-To: rtcweb@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 4325611E8074 for <rtcweb@ietfa.amsl.com>; Mon, 7 May 2012 14:32:39 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -110.299
X-Spam-Level:
X-Spam-Status: No, score=-110.299 tagged_above=-999 required=5 tests=[AWL=-0.301, BAYES_00=-2.599, HTML_MESSAGE=0.001, J_CHICKENPOX_41=0.6, RCVD_IN_DNSWL_HI=-8, 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 Tgbj5YHB7GrL for <rtcweb@ietfa.amsl.com>; Mon, 7 May 2012 14:32:36 -0700 (PDT)
Received: from eikenes.alvestrand.no (eikenes.alvestrand.no [158.38.152.233]) by ietfa.amsl.com (Postfix) with ESMTP id 4019711E8073 for <rtcweb@ietf.org>; Mon, 7 May 2012 14:32:36 -0700 (PDT)
Received: from localhost (localhost [127.0.0.1]) by eikenes.alvestrand.no (Postfix) with ESMTP id 32D9339E1E2 for <rtcweb@ietf.org>; Mon, 7 May 2012 23:32:35 +0200 (CEST)
X-Virus-Scanned: Debian amavisd-new at eikenes.alvestrand.no
Received: from eikenes.alvestrand.no ([127.0.0.1]) by localhost (eikenes.alvestrand.no [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id pZKSjZt+86H8 for <rtcweb@ietf.org>; Mon, 7 May 2012 23:32:30 +0200 (CEST)
Received: from [172.28.93.74] (unknown [74.125.122.49]) by eikenes.alvestrand.no (Postfix) with ESMTPSA id 92F0839E107 for <rtcweb@ietf.org>; Mon, 7 May 2012 23:32:30 +0200 (CEST)
Message-ID: <4FA83F6D.9040308@alvestrand.no>
Date: Mon, 07 May 2012 23:32:29 +0200
From: Harald Alvestrand <harald@alvestrand.no>
User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.28) Gecko/20120313 Thunderbird/3.1.20
MIME-Version: 1.0
To: rtcweb@ietf.org
References: <6F428EFD2B8C2F49A2FB1317291A76C11364EC028C@USNAVSXCHMBSA1.ndc.alcatel-lucent.com>
In-Reply-To: <6F428EFD2B8C2F49A2FB1317291A76C11364EC028C@USNAVSXCHMBSA1.ndc.alcatel-lucent.com>
Content-Type: multipart/alternative; boundary="------------030403050202050101030304"
Subject: Re: [rtcweb] Proposal for PeerConnection cloning
X-BeenThere: rtcweb@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: Real-Time Communication in WEB-browsers working group list <rtcweb.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rtcweb>, <mailto:rtcweb-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/rtcweb>
List-Post: <mailto:rtcweb@ietf.org>
List-Help: <mailto:rtcweb-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rtcweb>, <mailto:rtcweb-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 07 May 2012 21:32:39 -0000
Richard, thank you for doing this! It's definitely the most thought-through proposal I've seen on this question! Two questions that are different from what others have raised: On 05/06/2012 08:54 PM, Ejzak, Richard P (Richard) wrote: > > Harald asked for a proposal for PeerConnection cloning, so here it goes: > > I propose to create a new constructor ?ClonePeerConnection? (CPC > below) with the following semantics. > > 1. CPC will create a new PeerConnection object when successful. > The resulting PC behaves just like any other PC except as > described below. > 2. CPC will take as input a reference to an existing PeerConnection > (PC) object (no configuration or IceCallback parameters). > 3. CPC can clone any other PC (including a cloned PC). The > sequence of cloning is not important and parents have no > particular status different from any generation of clone. > 4. CPC will fail if either the local description of the parent PC > is not set or the parent PC ICE is in ICE_CLOSED or > ICE_GATHERING state. The parent PC can be in the OPENING or > ACTIVE state. > 5. The CPC object will inherit the local streams, local ICE > candidates, and local description of the PC. > when it inherits the local streams, do you assume that unless the JS applies some setting, they will also inherit the "enabled/disabled" state, but that the "enabled/disabled" state can be changed independently for each PeerConnection's local streams after the cloning? > > 1. > > > 2. The remote streams and remote description for the CPC object > will be set to empty. > 3. The CPC object will be set to the OPENING state to reflect that > only the local description is set. > 4. The ICE states other than CLOSED and GATHERING will be handled > independently for each PC and its clones (as is true in standard > forking scenarios). > 5. The ICE state for this clone will be set to ICE_WAITING to > reflect that all candidates are available but the remote > configuration is not yet set. > 6. The PC and its clone(s) use a common pool of media resources. > 7. If the parent PC object has already released unused resources > (final ANSWER), resources are reallocated as available to > reflect the capabilities for each stream (as they would be > reflected in a createOffer). > 8. The local streams might multicast toward the remote targets > depending on the directionality attributes independently set for > each PC and clone. > So far, we've stayed away from anything that involves IP multicast. Are you sure it's worth the potential complexity to try to use this here? Remember that using multicast changes a *lot* of things on both ends of the connections - the sender has to have IP multicast address allocations, he has to decide between SSM and ASM, the recipients have to use a multicast joining protocol, the infrastructure has to be present to carry the multicast groups, we have to have a fallback in case it isn't, the appropriate congestion control protocols are probably different ..... I would prefer to not bring this in scope for this round of WebRTC. Is there a compelling reason you see for embarking on this particular adventure? > > 1. > > > 2. The application should manage the directionality attributes for > remote streams from different targets to avoid resource conflicts. > > CPC will be used primarily if forking is anticipated or actually > occurs. It can also be used to clone a stable PC if desired for other > reasons. When used for SIP forking, creation of the clone can be > delayed until an ANSWER actually arrives from a 2^nd target as long as > final ANSWER hasn?t been applied to the parent (PRANSWER is OK). The > parent always handles the first target; the first clone handles the > 2^nd target; etc. The application can even try to clone for forking > after the first ANSWER is applied to the parent and resources are > released, as long as the local description has not changed, at the > risk that some resources needed for the 2^nd target are no longer > available and must be renegotiated. > > Comments on this proposal are welcome. > > Richard > > > _______________________________________________ > rtcweb mailing list > rtcweb@ietf.org > https://www.ietf.org/mailman/listinfo/rtcweb
- Re: [rtcweb] Proposal for PeerConnection cloning Christer Holmberg
- Re: [rtcweb] Proposal for PeerConnection cloning Randell Jesup
- Re: [rtcweb] Proposal for PeerConnection cloning Ejzak, Richard P (Richard)
- Re: [rtcweb] Proposal for PeerConnection cloning Stefan Hakansson LK
- [rtcweb] Proposal for PeerConnection cloning Ejzak, Richard P (Richard)
- Re: [rtcweb] Proposal for PeerConnection cloning Christer Holmberg
- Re: [rtcweb] Proposal for PeerConnection cloning Ejzak, Richard P (Richard)
- Re: [rtcweb] Proposal for PeerConnection cloning Martin Thomson
- Re: [rtcweb] Proposal for PeerConnection cloning Ejzak, Richard P (Richard)
- Re: [rtcweb] Proposal for PeerConnection cloning Randell Jesup
- Re: [rtcweb] Proposal for PeerConnection cloning Christer Holmberg
- Re: [rtcweb] Proposal for PeerConnection cloning Randell Jesup
- Re: [rtcweb] Proposal for PeerConnection cloning Christer Holmberg
- Re: [rtcweb] Proposal for PeerConnection cloning Ejzak, Richard P (Richard)
- Re: [rtcweb] Proposal for PeerConnection cloning IƱaki Baz Castillo
- Re: [rtcweb] Proposal for PeerConnection cloning Randell Jesup
- Re: [rtcweb] Proposal for PeerConnection cloning Roman Shpount
- Re: [rtcweb] Proposal for PeerConnection cloning Harald Alvestrand
- Re: [rtcweb] Proposal for PeerConnection cloning Harald Alvestrand
- Re: [rtcweb] Proposal for PeerConnection cloning Randell Jesup
- Re: [rtcweb] Proposal for PeerConnection cloning Ejzak, Richard P (Richard)
- Re: [rtcweb] Proposal for PeerConnection cloning Roman Shpount
- Re: [rtcweb] Proposal for PeerConnection cloning Roman Shpount
- Re: [rtcweb] Proposal for PeerConnection cloning Martin Thomson