Re: [rtcweb] JSEP: Issues with a=ssrc and RTP payload type switching

Magnus Westerlund <magnus.westerlund@ericsson.com> Mon, 08 June 2015 09:37 UTC

Return-Path: <magnus.westerlund@ericsson.com>
X-Original-To: rtcweb@ietfa.amsl.com
Delivered-To: rtcweb@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 945C01B2E2D for <rtcweb@ietfa.amsl.com>; Mon, 8 Jun 2015 02:37:06 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.601
X-Spam-Level:
X-Spam-Status: No, score=-3.601 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, J_CHICKENPOX_14=0.6, RCVD_IN_DNSWL_MED=-2.3, SPF_PASS=-0.001] autolearn=ham
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 M6lcuyP1DXZm for <rtcweb@ietfa.amsl.com>; Mon, 8 Jun 2015 02:37:04 -0700 (PDT)
Received: from sessmg22.ericsson.net (sessmg22.ericsson.net [193.180.251.58]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 5B69D1B2DE2 for <rtcweb@ietf.org>; Mon, 8 Jun 2015 02:37:02 -0700 (PDT)
X-AuditID: c1b4fb3a-f79ec6d000006dc0-54-55756239b948
Received: from ESESSHC005.ericsson.se (Unknown_Domain [153.88.253.125]) by sessmg22.ericsson.net (Symantec Mail Security) with SMTP id 4D.22.28096.C3265755; Mon, 8 Jun 2015 11:37:00 +0200 (CEST)
Received: from [127.0.0.1] (153.88.183.153) by smtp.internal.ericsson.com (153.88.183.35) with Microsoft SMTP Server id 14.3.210.2; Mon, 8 Jun 2015 11:36:56 +0200
Message-ID: <55756237.6060206@ericsson.com>
Date: Mon, 08 Jun 2015 11:36:55 +0200
From: Magnus Westerlund <magnus.westerlund@ericsson.com>
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko/20100101 Thunderbird/31.7.0
MIME-Version: 1.0
To: Harald Alvestrand <harald@alvestrand.no>, Roman Shpount <roman@telurix.com>
References: <556EF4F9.1060700@ericsson.com> <556F5E5C.5080600@alvestrand.no> <CAD5OKxs4_hVc-7haF7vik7+PNU33Ox9Jin35tzrPhiaekENLvQ@mail.gmail.com> <557556ED.8050206@ericsson.com> <55755E12.8020201@alvestrand.no>
In-Reply-To: <55755E12.8020201@alvestrand.no>
Content-Type: text/plain; charset="windows-1252"; format="flowed"
Content-Transfer-Encoding: 8bit
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrNLMWRmVeSWpSXmKPExsUyM+Jvra5NUmmowalODYtjfV1sFjMuTGW2 WPuvnd2B2ePKhCusHkuW/GTyuDWlIIA5issmJTUnsyy1SN8ugSvj7Wvvgh7liln7drI2MH6V 7mLk5JAQMJF4tm0vO4QtJnHh3nq2LkYuDiGBo4wSdw++ZgJJCAksY5R4s8oSxOYV0Jb4eXYO WAOLgIrEtCMPwGw2AQuJmz8a2UBsUYEoiamP17FA1AtKnJz5BMwWEQiUuP39M1gNs4C6xJ3F 58B6hQV8JV4v2swKsesSo8Sm18UgNqeArsSf0++AbuAAqreXeLC1DKJVXqJ562xmiHJtiYam DtYJjIKzkGybhdAxC0nHAkbmVYyixanFxbnpRkZ6qUWZycXF+Xl6eaklmxiBoXtwy2+rHYwH nzseYhTgYFTi4X2wryRUiDWxrLgy9xCjNAeLkjjvjM15oUIC6YklqdmpqQWpRfFFpTmpxYcY mTg4pRoYXS4c5S1u9b1VsunfBUthkTjBLZv/fzzvfeFoTNUjnp+rDWuWTgqYqR2yUCeYY15P xJFPgo+kfk3QiRKe/G3PmURuyRTHbTcOfN7822OS0ZT+HSuseae9e/zz/NS0Ey3Hrzi6l+W1 Tv0t11zmH/bNQem9eKugMUPddn3pIqnH4rvswg9Ubd/RrsRSnJFoqMVcVJwIAApItbg+AgAA
Archived-At: <http://mailarchive.ietf.org/arch/msg/rtcweb/VehNXm6MC_tkired24dJT64dc9k>
Cc: "rtcweb@ietf.org" <rtcweb@ietf.org>
Subject: Re: [rtcweb] JSEP: Issues with a=ssrc and RTP payload type switching
X-BeenThere: rtcweb@ietf.org
X-Mailman-Version: 2.1.15
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, 08 Jun 2015 09:37:06 -0000

Harald Alvestrand skrev den 2015-06-08 11:19:
> Den 08. juni 2015 10:48, skrev Magnus Westerlund:

>> However, this can't work as RFC 7160 says in Section 4.1:
>>
>>    An RTP Sender with RTCP turned on MUST use a different SSRC for each
>>     different clock rate.  An RTCP BYE MUST be sent and a new SSRC MUST
>>     be used if the clock rate switches back to a value already seen in
>>     the RTP stream.
>>
>> Note the second sentence. One would still have to do a new round of
>> signalling to prime a new SSRC for the previous rate after having
>> switched to be able to switch back to that Payload Type.
>
> Hm. I missed that when reviewing the clock-rate doc.
> So that means one uses up an SSRC for every clock rate switch. That
> seems silly; is it possible that this should be considered an erratum
> for RFC 7160?

No, it is highly intentional as I remember the discussion.

>
>> I would to some degree argue that renegotiation is not needed here. My
>> preference would be for a solution that rather use header extensions to
>> indicate what "purpose" the new RTP stream has so that one understands
>> that this is the replacement for an earlier RTP stream.
>
> That would of course be incompatible with anything that came before.

All that has used multiple streams per endpoint before has had some 
implicit rules to handle different situations. What is forcing the issue 
here is the realization about RFC 7160 forcing SSRC changes. If there is 
single encoding per endpoint, then using CNAME and PT is sufficient to 
associate when one switches. If one have multiple streams then the fun 
starts. IETF has never had any specifications for solving this, so from 
that perspective we are laying down a solution where different 
interpretations has been used based on what is specific for that 
application.

>
>> For the cases where a source is encoded into a single encoded stream and
>> put in one RTP stream I think all the necessary indications are there.
>> MID for which m line it belongs. The PT will indicate if it a source RTP
>> stream or an Redundancy RTP stream (FEC or RTX).
>>
>> It is when one comes to scalability layers sent in multiple RTP streams
>> it becomes problematic to determine on RTP level which is which, without
>> looking into payload header info to determine which layer the payload
>> contains.
>
> But I just can't imagine switching clock rates for different layers of a
> scalability-encoded stream. Should we just not solve the problem of
> behaving bizarrely for this case?

That was not what I meant. If one switches to or from a scalable encoder 
or between different encoders, the one might be in a situation where one 
needs to identify that one set of SSRCs are now replaced with a 
different set of SSRCs.

What I was unclear on was that multiple RTP streams for a single media 
source due to scalable encoding anyway has this issue with 
identification. I think the solution to that is likely a combination of 
MID and something like the header marking header extension being 
proposed in AVTEXT:

https://datatracker.ietf.org/doc/draft-berger-avtext-framemarking/

That way the identification information is available to the receiver 
directly before having to look into payload. Something that will be 
impossible in a PERC scenario anyway.

>
>>
>> Having said that I do wonder if this will be a problem, especially in
>> gateways to legacy. Where this behaviour will make the legacy peer fall
>> over. Thus requiring a gateway that remap back to a single stable SSRC,
>> possibly with loss of synch information. Please remember that there are
>> reasons why the SSRC change was made as the required behaviour.
>
> Are there legacy gateways that will NOT fall over on a clock rate + SSRC
> switch?

Good Question!

> If so - what do these legacy gateways do when switching back to the
> original PT? New SSRC, or back to a previously used SSRC?
>


Cheers

Magnus Westerlund

----------------------------------------------------------------------
Services, Media and Network features, Ericsson Research EAB/TXM
----------------------------------------------------------------------
Ericsson AB                 | Phone  +46 10 7148287
Färögatan 6                 | Mobile +46 73 0949079
SE-164 80 Stockholm, Sweden | mailto: magnus.westerlund@ericsson.com
----------------------------------------------------------------------