Re: [AVTCORE] Need feedback on RFC5285bis (RTP header extensions) comments

Roni Even <roni.even@huawei.com> Thu, 02 February 2017 06:20 UTC

Return-Path: <roni.even@huawei.com>
X-Original-To: avt@ietfa.amsl.com
Delivered-To: avt@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id C58271293E9 for <avt@ietfa.amsl.com>; Wed, 1 Feb 2017 22:20:57 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -7.42
X-Spam-Level:
X-Spam-Status: No, score=-7.42 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RP_MATCHES_RCVD=-3.199, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id GHyQlC5btGpM for <avt@ietfa.amsl.com>; Wed, 1 Feb 2017 22:20:55 -0800 (PST)
Received: from lhrrgout.huawei.com (lhrrgout.huawei.com [194.213.3.17]) (using TLSv1 with cipher RC4-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 60AF4128B44 for <avt@ietf.org>; Wed, 1 Feb 2017 22:20:54 -0800 (PST)
Received: from 172.18.7.190 (EHLO lhreml704-cah.china.huawei.com) ([172.18.7.190]) by lhrrg01-dlp.huawei.com (MOS 4.3.7-GA FastPath queued) with ESMTP id DFQ57584; Thu, 02 Feb 2017 06:20:51 +0000 (GMT)
Received: from DGGEMM406-HUB.china.huawei.com (10.3.20.214) by lhreml704-cah.china.huawei.com (10.201.5.130) with Microsoft SMTP Server (TLS) id 14.3.301.0; Thu, 2 Feb 2017 06:20:43 +0000
Received: from DGGEMM506-MBX.china.huawei.com ([169.254.3.117]) by DGGEMM406-HUB.china.huawei.com ([10.3.20.214]) with mapi id 14.03.0301.000; Thu, 2 Feb 2017 14:18:37 +0800
From: Roni Even <roni.even@huawei.com>
To: "Dale R. Worley" <worley@ariadne.com>
Thread-Topic: [AVTCORE] Need feedback on RFC5285bis (RTP header extensions) comments
Thread-Index: AQHSfRwvRdEGhFAiR0abdcnNJyNsCg==
Date: Thu, 02 Feb 2017 06:18:36 +0000
Message-ID: <6E58094ECC8D8344914996DAD28F1CCD7705F5@DGGEMM506-MBX.china.huawei.com>
References: <6E58094ECC8D8344914996DAD28F1CCD770167@DGGEMM506-MBX.china.huawei.com> (roni.even@huawei.com) <8760kt71kq.fsf@hobgoblin.ariadne.com>
In-Reply-To: <8760kt71kq.fsf@hobgoblin.ariadne.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [10.200.201.150]
Content-Type: text/plain; charset="windows-1255"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-CFilter-Loop: Reflected
X-Mirapoint-Virus-RAPID-Raw: score=unknown(0), refid=str=0001.0A020204.5892CFC4.0095, ss=1, re=0.000, recu=0.000, reip=0.000, cl=1, cld=1, fgs=0, ip=169.254.3.117, so=2013-06-18 04:22:30, dmn=2013-03-21 17:37:32
X-Mirapoint-Loop-Id: 554869703f155d9f7c5b552de619d40c
Archived-At: <https://mailarchive.ietf.org/arch/msg/avt/X-AyqLCPNwPASJLAsnO6m62C4eY>
Cc: "avt@ietf.org" <avt@ietf.org>, "singer@apple.com" <singer@apple.com>
Subject: Re: [AVTCORE] Need feedback on RFC5285bis (RTP header extensions) comments
X-BeenThere: avt@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: Audio/Video Transport Core Maintenance <avt.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/avt>, <mailto:avt-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/avt/>
List-Post: <mailto:avt@ietf.org>
List-Help: <mailto:avt-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/avt>, <mailto:avt-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 02 Feb 2017 06:20:58 -0000

Hi Dale,
I will look at all your comments but just to clarify rfc5285bis history.

This bis draft was created to add the support for mixing one byte and two bytes in an RTP session. It is good to clarify the text but we cannot change any RC5285 or RFC3550 policies in order to keep interoperability.
RFC5285 is an update to RFC3550 which allowed for RTP header extensions without any negotiation so for backward interoperability it is noted that RTP header extensions can appear in the RTP stream without being negotiated first, note that RTP header extensions can be ignored and the RTP will still be OK. 
This was not a late review by Paul but it was part of the SDP directorate review that is needed for all documents with SDP. 
Roni 

> -----Original Message-----
> From: Dale R. Worley [mailto:worley@ariadne.com]
> Sent: יום ה 02 פברואר 2017 04:45
> To: Roni Even
> Cc: avt@ietf.org; singer@apple.com
> Subject: Re: [AVTCORE] Need feedback on RFC5285bis (RTP header
> extensions) comments
> 
> Roni Even <roni.even@huawei.com> writes:
> > Paul made a very thorough SDP review and had some comments on which I
> > am looking for feedback.
> 
> I didn't realize that this draft was so interesting.  Given that it's still under
> review, even though it's a month after the official end of the last call, I'll post
> my full comments later.  In the mean time:
> 
> > 1.       In section 7 "If an extension is marked as "sendonly" and the
> > answerer desires to  receive it, the extension MUST be marked as
> > "recvonly" in the SDP answer.  An answerer that has no desire to
> > receive the extension or does not understand the extension SHOULD
> > remove it from the SDP  answer." . Is there a reason for the "SHOULD"
> > here or should we change it to "MUST" or maybe if not removed to
> > respond with "inactive"  or "sendonly" if want to send and and not
> > receive?
> 
> I think the idea is that if the offer contains "sendonly" and the answerer
> wants to receive it, then the answer must contain "recvonly".
> But if the answerer doesn't want to receive it, then the answerer must set it
> to "inactive" or remove the attribute, and the latter is preferred.  At least,
> that makes sense, and it makes the MUSTs and SHOULDs correct, though
> that's probably not the clearest way to express the meaning.
> 
> > 2.       In this case if the offer is refused by removing the extmap
> > line, can the ID be re-used?
> 
> I think the point of this text in section 7 is that if an extension identifier could
> get used in RTP packets (i.e., is in the answer), then a session update can't
> immediately define that identifier to a new URI:
> 
>    Identifiers values in the valid range MUST NOT
>    be altered (remapped).
> 
> That protects packets in flight from misinterpretation.
> 
> But if the extension identifier isn't accepted in the offer, then there's no
> problem with packets in flight, and the next session update can allocate the
> identifier to a different extension.
> 
> However, this text in section 7 seems to say that if an identifier is in the offer,
> even if it isn't in the answer, both endpoints can use it:
> 
>    Either party MAY include extensions in the stream other than those
>    negotiated, or those negotiated as "inactive", for example, for the
>    benefit of intermediate nodes.  Only extensions that appeared with an
>    identifier in the valid range in SDP originated by the sender can be
>    sent.
> 
> In that case, packets in flight could be using an identifier that was not
> accepted in the answer.
> 
> My opinion is that the latter text is not a good idea.
> 
> > 3.        In section 7 "Local identifiers in the valid range inclusive
> > in an offer or answer MUST NOT be used more than once per media
> > section (including the session-level section).  A session update MAY
> > change the direction qualifiers of extensions under use.  A session
> > update MAY add or remove extension(s).  Identifiers values in the
> > valid range MUST NOT be altered (remapped)." Paul asked what is the
> > scope over which identifiers must not be altered. His thought was only
> > for the current RTP session so when a call is transferred (one party
> > is still in the call) they may be altered. Any thoughts?
> 
> Good point -- this is the same problem as reusing RTP payload types.  In
> theory you don't want to reuse them at all, or at least, not use them for
> different encodings immediately before and after one single session update,
> because there may be packets in flight using that payload type.
> But various call transfer and 3PCC scenarios make that very difficult to ensure
> in practice.
> 
> > 4.       Is it valid to use IDs in the (unusable) range in answers? (I
> > guess that would give the offerer info that it could use in a future
> > offer.). I am not sure what was meant here. Is it an answer to an
> > offer with an ID in the valid range? Or is it about keeping an
> > alternative from the offer with the unusable space and not remove it?
> > I assume that the answer cannot add extensions to the ones in the
> > offer, will need a new offer for that.
> 
> I think it's a mechanism to allow the answerer to say "I support that
> extension" even if it can't allocate a valid identifier for it, or if it doesn't want
> to use the extension now.  (But see the second quoted passage under item 2
> and its discussion.)
> 
> Though it's not clear to me how useful that facility is.  In general, a UA should
> always offer everything that it is willing to support because any information it
> has cached about the capabilities/desires of the other endpoint could be
> invalid now.
> 
> > 5.       May values from the (unused) range that are used in offers
> > (or answers) be reused differently in subsequent offers?
> 
> I believe the intention is that they may be reused.  The text does not forbid
> that:
> 
>    Identifiers values in the valid range MUST NOT
>    be altered (remapped).
> 
> And there is no packets-in-flight problem.
> 
> > 6.       Would the following be valid? (Only the directionality differs.)
> >
> >      OFFER:
> >
> >      a=extmap:4096/sendonly http://example.com/082005/ext.htm#opt1
> >
> >      a=extmap:4096/recvonly http://example.com/082005/ext.htm#opt1
> 
> That's subtle:  the identifier is mapped to the same extension in both
> directions, but each direction is mapped by a different extmap attribute.
> Yeah, that's forbidden in section 5:
> 
>    In addition, as noted above,
>    the IDs used MUST be unique for each stream type for a given media,
>    or for the session for session-level declarations.
> 
> > 7.       Is it allowed to use the "alternatives" mechanism with only a
> > single alternative? This would be a way to avoid "wasting" an ID value
> > until you know if your peer supports the option. I see this usage in
> > an example, but it is not mentioned in text. If this is an intended
> > usage then it would be good to provide some further explanation.
> 
> Well, it isn't an "alternative" construction because there's only one attribute
> with that identifier.  But it's not forbidden to write just one attribute with an
> extended identifier value.  However, telling the other UA that you support
> an extension isn't very useful, because the next time the other UA updates
> the session, you may not be the UA on this end of the call.
> 
> Dale