Re: [MMUSIC] Partial Offer/Partial Answer draft
Paul Kyzivat <pkyzivat@alum.mit.edu> Thu, 17 October 2013 17:48 UTC
Return-Path: <pkyzivat@alum.mit.edu>
X-Original-To: mmusic@ietfa.amsl.com
Delivered-To: mmusic@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 6253611E8118 for <mmusic@ietfa.amsl.com>; Thu, 17 Oct 2013 10:48:26 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.278
X-Spam-Level:
X-Spam-Status: No, score=-0.278 tagged_above=-999 required=5 tests=[AWL=0.159, BAYES_00=-2.599, FH_RELAY_NODNS=1.451, HELO_MISMATCH_NET=0.611, RDNS_NONE=0.1]
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 kxPrY5jRPupO for <mmusic@ietfa.amsl.com>; Thu, 17 Oct 2013 10:48:20 -0700 (PDT)
Received: from qmta12.westchester.pa.mail.comcast.net (qmta12.westchester.pa.mail.comcast.net [IPv6:2001:558:fe14:44:76:96:59:227]) by ietfa.amsl.com (Postfix) with ESMTP id E5FF011E81A2 for <mmusic@ietf.org>; Thu, 17 Oct 2013 10:48:16 -0700 (PDT)
Received: from omta22.westchester.pa.mail.comcast.net ([76.96.62.73]) by qmta12.westchester.pa.mail.comcast.net with comcast id eHJn1m0041ap0As5CHoGyS; Thu, 17 Oct 2013 17:48:16 +0000
Received: from Paul-Kyzivats-MacBook-Pro.local ([50.138.229.164]) by omta22.westchester.pa.mail.comcast.net with comcast id eHoG1m0073ZTu2S3iHoGmw; Thu, 17 Oct 2013 17:48:16 +0000
Message-ID: <526022DF.6070003@alum.mit.edu>
Date: Thu, 17 Oct 2013 13:48:15 -0400
From: Paul Kyzivat <pkyzivat@alum.mit.edu>
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:17.0) Gecko/20130801 Thunderbird/17.0.8
MIME-Version: 1.0
To: Adam Roach <adam@nostrum.com>
References: <525C7537.4080209@nostrum.com> <525DB14E.8060804@alum.mit.edu> <5260101F.409@nostrum.com>
In-Reply-To: <5260101F.409@nostrum.com>
Content-Type: text/plain; charset="UTF-8"; format="flowed"
Content-Transfer-Encoding: 7bit
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=comcast.net; s=q20121106; t=1382032096; bh=J5kxQcT87cG653Q9HYe2uy3RBuvpfEwZDLCAV3mLipk=; h=Received:Received:Message-ID:Date:From:MIME-Version:To:Subject: Content-Type; b=oT/voUYqjhGtdNLBW6FqtxtorfnfTgiBZ2g+HKJCa1yWbGxOwdyyocCnXoygOiVrn hEo6StoKMFYqUp5fzUDeoI9lcXgeIQxcJy+NqcC3EOK/pm6UOffY7Rc3Qa7LaJyphy RxnJ2ew3dII/n5sIf8FZcyi958Gw+coP80EgNwcMR4cjU5xRZQjTUaIc4RK5i4fNdJ 8OKA9seo/nh2YTsbIG7HCIGEWeZVgK1duKo5eeqEHyZ0YA0Kmi2rSQ9cS2wP1atBUP sj2mr9AIA8uT38McIB1yELm8VTbm+fVx3+GNnf6CpkmhzALpMyAyw4TIM+V0+5flX/ 1uxVN3CGeWJ8w==
Cc: mmusic@ietf.org
Subject: Re: [MMUSIC] Partial Offer/Partial Answer draft
X-BeenThere: mmusic@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: Multiparty Multimedia Session Control Working Group <mmusic.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/mmusic>, <mailto:mmusic-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/mmusic>
List-Post: <mailto:mmusic@ietf.org>
List-Help: <mailto:mmusic-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/mmusic>, <mailto:mmusic-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 17 Oct 2013 17:48:26 -0000
On 10/17/13 12:28 PM, Adam Roach wrote:
> On 10/15/13 16:19, Paul Kyzivat wrote:
>> I believe it is valid to have multiple mid lines per media section.
>
> I don't think that's right. I'll admit that RFC5888 doesn't specifically
> talk about ordinality, but there is strong implication here that we're
> required to have a one-to-one relationship. Consider the language:
>
> In a given
> session description, each "m" line is identified by a token, which is
> carried in a "mid" attribute below the "m" line.
>
> We're always talking about these things in the singular when referring
> to their use in a media section. If we need to make this constraint an
> explicit precondition for using partials, than I'm okay doing so -- but
> I don't think it's really a constraint above and beyond what's implied
> by RFC 5888 itself.
My thinking was that when grouping is being used for multiple purposes,
each might use its own mid values.
The requirement that to use grouping at all every m-line must have a mid
decreases the motivation to do that. And certainly a single mid is
*sufficient*. But its hard to contemplate what all possible
implementations might do.
Rather than *assuming* 5888 forbids multiple mids, or updating to to
make that explicit, I think its easier to just say that you can't use
partials if there are multiple mids for any m-line.
Even then, I don't think that 5888 requires that the mids in a 2nd offer
must be the same, or in the same order, as in the prior offer. I don't
think you depend on that, but it is worth keeping in mind.
>> Section 3.2:
>>
>> I don't understand the open issue. How do stream changes result in glare?
>
> I send you a partial offer to set a sendrecv stream to sendonly at the
> same time as you send me a partial offer to change that very same stream
> to inactive.
OK.
>> Section 5.2:
>>
>> The restriction to changing a *single* media section per partial offer
>> is intended? What is wrong with changing several media sections in the
>> same partial offer? (Other than increasing the possibility of glare.)
>
> That's the open issue from section 3.2. I just didn't tag it as open in
> both places -- I figured pointing it out the first time we talk about
> the issue would be enough.
>
> And, yes, it's all about glare. After all, the entire raison d'etre for
> this mechanism is glare minimization.
I guess this is just a question of whether you want to protect people
from themselves, or give them enough rope to do good and bad things.
If multiple changes were *permitted*, then an application that wants to
minimize the glare can restrict itself to one change per pof. Some other
application, that has special knowledge about the usage may know that
certain combinations of changes have low probability of glaring.
>> I'm bothered by the use of random values for the new mid values. (I
>> just hate *depending* on two random values being different.) Instead,
>> how about specifying that each end use a unique prefix. We can find
>> some method to select the prefix. E.g., userid + sessionid from the
>> o-line. (Forbid use of partial offers if those aren't unique.)
>
> Sure, we can consider alternate proposals for this. I'll point out that
> you're more likely to have a collision between {userid,sessionid} of two
> clients than you will from 202 bits of randomness (which is what is
> currently proposed). Consider that sessionid is (supposed to be) derived
> from a notion of the current time, so the chances of colliding are
> exceedingly high. Similarly, the userid for SDP is frequently a fixed
> string rather than some variable string.
Obviously some other value could be used. All we need is a unique
designator for each end within the single session. Then all the mids can
be derived from that. Each one doesn't need to be random.
For instance, we could call the offering end of the most recent O/A "O"
and the answerer for that "A". And then each side could use that as a
prefix for all new mids assigned by POFs from that side.
> Your misgivings aside, I'm pretty much in the camp that believes that
> math works, even the statistics and probability parts of it.
And I'm in the camp that never gambles.
Statistics says that even exceedingly low probability events *can*
happen. Its ok to count on low probability events not happening if you
are willing to accept the consequences when they do happen. Even if that
is only expected to happen once in a trillion years, that doesn't mean
you have to wait a trillion years for it to happen. It could be tomorrow.
> I'd be more interested in entering into a conversation about how many
> bits of randomness are acceptable. I'm pretty sure 202 is massive
> overkill. Version 4 UUIDs, for contrast, use 122 bits of randomness,
> which we would get with 20-character SDP tokens. Given their limited
> scope (just one session), we could probably get away with far less than
> this.
>
>> Section 5.3:
>>
>> I think you need to s/less than/less than or equal to/ in:
>>
>> The agent then examines the o= line in the received partial offer.
>> If the <sess-version> value is less than the most recently
>> received full (non-partial) offer or answer, then the partial offer
>> is stale and MUST be rejected.
>
> Sure. "Equal to" would only arise from a misimplemented peer, but I'm
> happy to just call it stale.
Oh. Duh. You are right. Leave as it is.
>> Steps 3 & 4:
>>
>> Deciding *when* to do this is tricky. I don't know exactly what you
>> have in mind. I do have an idea for a simpler way:
>>
>> For all partial updates following a particular O/A, order *all* the
>> added media sections by their mid value. A new O/A then freezes those
>> and starts over.
>
> That occurred to me, mostly because it allows for multiple partial
> offers to be in flight simultaneously in the same direction.
>
> What concerned me was the difficulty in dealing with such freezes
> between sending a full offer and receiving its corresponding full
> answer, since any glare that arises from that exchange requires
> unfreezing the lines, but only back to the point that was created after
> the (now second-) most recent offer/answer exchange.
I don't see the problem. After sending a full offer everything *is*
frozen until the the answer is accepted or rejected. That's true without
POF/PAN.
Or do you mean that you are accepting and queuing *pending* partial
updates while waiting for the answer? But that doesn't seem like an
issue either. Just defer assigning the mids until the POF is to be sent.
> I also didn't like the way it interacted internally with our own
> implementation, since we would have a pretty hard time re-ordering
> streams after we brought them up and running. It's not too painful to do
> this upon processing of an answer (particularly because we've already
> seen the other side's offer, and know where each line is going to end up).
>
> It's not impossible to fix, but it sure would be more complicated and
> bug-prone. I don't expect we're the only ones who would run into
> difficulty in this arena, especially since I know we share this part of
> our code with a major hardware vendor who is active in the WebRTC space.
I won't argue with this. But it does need to be traded off against the
issue in the note. That seems to have similar problems.
Thanks,
Paul
- [MMUSIC] Partial Offer/Partial Answer draft Adam Roach
- Re: [MMUSIC] Partial Offer/Partial Answer draft Martin Thomson
- Re: [MMUSIC] Partial Offer/Partial Answer draft Adam Roach
- Re: [MMUSIC] Partial Offer/Partial Answer draft Martin Thomson
- Re: [MMUSIC] Partial Offer/Partial Answer draft Adam Roach
- Re: [MMUSIC] Partial Offer/Partial Answer draft Paul Kyzivat
- Re: [MMUSIC] Partial Offer/Partial Answer draft Christer Holmberg
- Re: [MMUSIC] Partial Offer/Partial Answer draft Adam Roach
- Re: [MMUSIC] Partial Offer/Partial Answer draft Martin Thomson
- Re: [MMUSIC] Partial Offer/Partial Answer draft Adam Roach
- Re: [MMUSIC] Partial Offer/Partial Answer draft Martin Thomson
- [MMUSIC] POF/PAN Editorial: Allign with BUNDLE te… Christer Holmberg
- Re: [MMUSIC] Partial Offer/Partial Answer draft Adam Roach
- Re: [MMUSIC] Partial Offer/Partial Answer draft Christer Holmberg
- Re: [MMUSIC] Partial Offer/Partial Answer draft Adam Roach
- Re: [MMUSIC] Partial Offer/Partial Answer draft Martin Thomson
- Re: [MMUSIC] POF/PAN Editorial: Allign with BUNDL… Suhas Nandakumar
- Re: [MMUSIC] POF/PAN Editorial: Allign with BUNDL… Christer Holmberg
- Re: [MMUSIC] Partial Offer/Partial Answer draft Adam Roach
- Re: [MMUSIC] Partial Offer/Partial Answer draft Martin Thomson
- Re: [MMUSIC] Partial Offer/Partial Answer draft Paul Kyzivat
- Re: [MMUSIC] Partial Offer/Partial Answer draft Martin Thomson
- Re: [MMUSIC] POF/PAN Editorial: Allign with BUNDL… Martin Thomson
- Re: [MMUSIC] Partial Offer/Partial Answer draft Christer Holmberg
- Re: [MMUSIC] Partial Offer/Partial Answer draft Adam Roach
- Re: [MMUSIC] Partial Offer/Partial Answer draft Adam Roach
- Re: [MMUSIC] Partial Offer/Partial Answer draft Adam Roach
- Re: [MMUSIC] Partial Offer/Partial Answer draft Christer Holmberg
- Re: [MMUSIC] Partial Offer/Partial Answer draft Paul Kyzivat
- Re: [MMUSIC] Partial Offer/Partial Answer draft Paul Kyzivat
- Re: [MMUSIC] Partial Offer/Partial Answer draft Adam Roach
- Re: [MMUSIC] Partial Offer/Partial Answer draft Christer Holmberg
- Re: [MMUSIC] Partial Offer/Partial Answer draft Paul Kyzivat