Re: [rtcweb] [tsvwg] Diffserv QoS for Video

Brian E Carpenter <brian.e.carpenter@gmail.com> Thu, 05 May 2016 04:30 UTC

Return-Path: <brian.e.carpenter@gmail.com>
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 7E90912D533; Wed, 4 May 2016 21:30:17 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.7
X-Spam-Level:
X-Spam-Status: No, score=-2.7 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
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 pRaj81GZeLnF; Wed, 4 May 2016 21:30:14 -0700 (PDT)
Received: from mail-pa0-x22d.google.com (mail-pa0-x22d.google.com [IPv6:2607:f8b0:400e:c03::22d]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id A985212D0A6; Wed, 4 May 2016 21:30:14 -0700 (PDT)
Received: by mail-pa0-x22d.google.com with SMTP id r5so32493151pag.1; Wed, 04 May 2016 21:30:14 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=subject:to:references:cc:from:organization:message-id:date :user-agent:mime-version:in-reply-to:content-transfer-encoding; bh=dtKHShRCIb6vCkY+ZkdcFhmnYARUweuYJ92yOZlpTBM=; b=adlShSlxjSBB6XebmSFweW6IMnv7Yu2NOFPlSaHHM8bzZPi2BrSf544tktbaYgsp1Z yb8raZ/vGzgstu7HbBDvqfrvAwo5ZzCTFo9CTnhkRn1LTcAm6K29uNqqZROlB9I7g5ER RULjcdpsotAq2lnBRNS20zreMqs08feMQLJuJZWoSjPijQLJ/cJcuP3CAQZ7GFDGvUBF 7HloPYDMd1obW3qI9jLW3rzeSDVu1vh5e740d11SO7cyrBEcbQSdAyARu/O647Ftejeg 044uiFZQYTGoxUErf3GSxNdWLTd3sEesAXXwjjGSbrBoknxtfhxJKzLS93yVqIWazsV5 G3CQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:subject:to:references:cc:from:organization :message-id:date:user-agent:mime-version:in-reply-to :content-transfer-encoding; bh=dtKHShRCIb6vCkY+ZkdcFhmnYARUweuYJ92yOZlpTBM=; b=bj8UzaI4cd5dInNoZaacYrwuFbpQo6lsByFG5jDG+jdZ9FvDkXBwqD+V7e/qqWyMqT B9Z8kH3DHtAYkkzCZikfm7uF9x0mtQY2xXry5g6azBYAqGcrpgFNRZGUAraOPA7jfoIb 2Iqdo3f2w4sT1QD3e6z59U10Syc2Dj36BUPP8RndfkfuKIk7M6Vpyow5L3VnC4l7MRdb BC/PD5GC3QtD6p1tAFTvbTiqLCHLI+EUAQpDCMGxLnPeHNr+THGt+wGKM9z1DvOvatyg 2sQu6jaf3kmbiV88m7I5qzP+ehAH3kC5d3EmVbcF25EZuvR4DFcCBKaCIMWQDseUARQK CqAg==
X-Gm-Message-State: AOPr4FVTTzFeYEBKvnlu5SzBLKVC5qZ/tJV8GzGz/a8I6rZDI1n+o/kix4hh3l4T98mbKw==
X-Received: by 10.66.230.195 with SMTP id ta3mr17529343pac.150.1462422614203; Wed, 04 May 2016 21:30:14 -0700 (PDT)
Received: from ?IPv6:2406:e007:5671:1:28cc:dc4c:9703:6781? ([2406:e007:5671:1:28cc:dc4c:9703:6781]) by smtp.gmail.com with ESMTPSA id w187sm9565402pfw.50.2016.05.04.21.30.10 (version=TLSv1/SSLv3 cipher=OTHER); Wed, 04 May 2016 21:30:12 -0700 (PDT)
To: Bernard Aboba <bernard.aboba@gmail.com>
References: <CE03DB3D7B45C245BCA0D243277949362E993518@MX104CL02.corp.emc.com> <7ebc2ca5-c10f-f85e-2b6f-0d685c87f187@gmail.com> <CAOW+2du4UA2Trw6hFUQ+bpBfwXSF-uJfSth5b4YCaK__ULbufA@mail.gmail.com> <cfbd3981-7def-94b4-7e51-db1bae68fd6c@gmail.com> <CAOW+2dtrM2MuU6NoCvq+mxzo_zxgU=gO_VRkBwcf5qzduzdRNA@mail.gmail.com>
From: Brian E Carpenter <brian.e.carpenter@gmail.com>
Organization: University of Auckland
Message-ID: <94d47bb7-3d58-5d3c-1c4d-06840d172b79@gmail.com>
Date: Thu, 05 May 2016 16:30:17 +1200
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.0
MIME-Version: 1.0
In-Reply-To: <CAOW+2dtrM2MuU6NoCvq+mxzo_zxgU=gO_VRkBwcf5qzduzdRNA@mail.gmail.com>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Archived-At: <http://mailarchive.ietf.org/arch/msg/rtcweb/7qKH0sgx572DfuqMg-zTylGdcSI>
Cc: "Black, David" <david.black@emc.com>, "rtcweb@ietf.org" <rtcweb@ietf.org>, "tsvwg@ietf.org" <tsvwg@ietf.org>
Subject: Re: [rtcweb] [tsvwg] Diffserv QoS for Video
X-BeenThere: rtcweb@ietf.org
X-Mailman-Version: 2.1.17
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: <https://mailarchive.ietf.org/arch/browse/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: Thu, 05 May 2016 04:30:17 -0000

> To my mind, the real
> question is whether a "non-interactive" marking/priority would deliver
> anything useful to application developers, 

Absolutely. As I understand things, a media stream in an interactive
session has one requirement that is definitely more stringent than
for a non-interactive session: lower latency. So the question is how
to ensure that the most suitable DSCP is chosen to achieve the required
latency. But that takes us back to
https://tools.ietf.org/html/draft-ietf-tsvwg-rtcweb-qos-15#section-5
where by some magic the code needs to know the flow type.

This is why trying to compress the subtleties of QoS into a "priority"
parameter is bound to fail. I don't understand how
https://tools.ietf.org/html/draft-ietf-rtcweb-transports-12#section-4.2
is going to work without extending the API.

Regards
   Brian


On 05/05/2016 13:41, Bernard Aboba wrote:
> Brian said:
> 
> "All the same, I think the phrasing I quoted at
> https://tools.ietf.org/html/draft-ietf-tsvwg-rtcweb-qos-15#section-4
> is problematic; it implies that there's a Boolean property "interactive"
> which clearly is not supported in the encoding parameters."
> 
> [BA] Overall, I'm not clear that this thread is asking the right questions,
> or making correct statements about the existing API.  To my mind, the real
> question is whether a "non-interactive" marking/priority would deliver
> anything useful to application developers, not whether the API could
> support it.
> 
> The encoding parameters can be used to allow an application to specify a
> priority attribute.  If a "non-interactive" marking and associated priority
> attribute were to be defined, the current API could allow applications to
> specify that.  So citing a 4-year old version of the WebRTC 1.0
> specification as justification for the lack of API functionality doesn't
> make sense to me.   Since the browser just does what it is told to do by
> the application, whether the browser "knows" whether the media is
> interactive or not also does not matter.
> 
> The real question is whether a  "non-interactive" marking/priority setting
> would be useful to application developers.
> 
> Uni-directional communications (e.g. "sendonly", "recvonly") is supported
> within WebRTC.  Would those kind of flows benefit from a "non-interactive"
> marking? In most cases, I suspect that in general it would not be useful (a
> possible exception might be use of SVC codecs protecting only the base
> layer with FEC/RTX).
> 
> It is conceivable that an application might want to attach a track to a
> sender that isn't obtained from getUserMedia() (see:
> http://w3c.github.io/mediacapture-main/) or getDisplayMedia() (see
> https://w3c.github.io/mediacapture-screen-share/).  Again, the question is
> whether a "non-interactive" marking/priority would be helpful in those
> cases.  I suspect the answer to that is also "no" for similar reasons.
> 
> On Wed, May 4, 2016 at 5:36 PM, Brian E Carpenter <
> brian.e.carpenter@gmail.com> wrote:
> 
>> Thanks Bernard.
>>
>> All the same, I think the phrasing I quoted at
>> https://tools.ietf.org/html/draft-ietf-tsvwg-rtcweb-qos-15#section-4
>> is problematic; it implies that there's a Boolean property "interactive"
>> which clearly is not supported in the encoding parameters.
>>
>> Regards
>>    Brian
>>
>> On 05/05/2016 11:01, Bernard Aboba wrote:
>>> Brian Carpenter said:
>>>
>>> "Then, is it clear how the browser "knows" this?"
>>>
>>> [BA] The application explicitly provides information to the browser by
>> setting the RTCRtpEncodingParameters.priority attribute
>>> via the sender.setParameters() API:
>>>
>>> dictionary RTCRtpEncodingParameters { unsigned long ssrc <
>> http://w3c.github.io/webrtc-pc/#widl-RTCRtpEncodingParameters-ssrc>;
>>> |RTCRtpRtxParameters| rtx <
>> http://w3c.github.io/webrtc-pc/#widl-RTCRtpEncodingParameters-rtx>;
>> |RTCRtpFecParameters| fec
>>> <http://w3c.github.io/webrtc-pc/#widl-RTCRtpEncodingParameters-fec>;
>> boolean active
>>> <http://w3c.github.io/webrtc-pc/#widl-RTCRtpEncodingParameters-active>;
>> |RTCPriorityType| priority
>>> <http://w3c.github.io/webrtc-pc/#widl-RTCRtpEncodingParameters-priority>;
>> unsigned long maxBitrate
>>> <
>> http://w3c.github.io/webrtc-pc/#widl-RTCRtpEncodingParameters-maxBitrate>;
>> unsigned long maxFramerate
>>> <
>> http://w3c.github.io/webrtc-pc/#widl-RTCRtpEncodingParameters-maxFramerate>;
>> DOMString rid
>>> <http://w3c.github.io/webrtc-pc/#widl-RTCRtpEncodingParameters-rid>;
>> double scaleResolutionDownBy
>>> <
>> http://w3c.github.io/webrtc-pc/#widl-RTCRtpEncodingParameters-scaleResolutionDownBy>
>> = 1.0; };
>>>
>>>
>>> The Priority and QoS Model is described in the latest WebRTC 1.0
>> Editor's draft (http://w3c.github.io/webrtc-pc/) Section 4.10:
>>>
>>> 4.10 Priority and QoS Model
>>>
>>> Many applications have multiple media flows of the same data type and
>> often some of the flows are more important than others.
>>> WebRTC uses the priority and Quality of Service (QoS) framework
>> described in [RTCWEB-TRANSPORT] and [TSVWG-RTCWEB-QOS] to
>>> provide priority and DSCP marking for packets that will help provide QoS
>> in some networking environments. The priority setting
>>> can be used to indicate the relative priority of various flows. The
>> priority API allows the JavaScript applications to tell the
>>> browser whether a particular media flow is high, medium, low or of very
>> low importance to the application by setting
>>> the |priority|property of ||RTCRtpEncodingParameters|| objects to one of
>> the following values.
>>>
>>>
>>>         4.10.1 RTCPriorityType Enum
>>>
>>>
>>> enum RTCPriorityType {
>>>     "very-low <
>> http://w3c.github.io/webrtc-pc/#idl-def-RTCPriorityType.very-low>",
>>>     "low <http://w3c.github.io/webrtc-pc/#idl-def-RTCPriorityType.low>",
>>>     "medium <
>> http://w3c.github.io/webrtc-pc/#idl-def-RTCPriorityType.medium>",
>>>     "high <http://w3c.github.io/webrtc-pc/#idl-def-RTCPriorityType.high
>>> "
>>> };
>>>
>>>
>>> On Wed, May 4, 2016 at 1:28 PM, Brian E Carpenter <
>> brian.e.carpenter@gmail.com <mailto:brian.e.carpenter@gmail.com>> wrote:
>>>
>>>     I fear I have an up-level question: what is the definition of
>> "interactive"?
>>>
>>>     draft-ietf-tsvwg-rtcweb-qos doesn't define it, presumably because it
>> was
>>>     assumed to be obvious, but thinking about David's suggestions, I
>> decided
>>>     that it isn't so obvious.
>>>
>>>     https://tools.ietf.org/html/draft-ietf-tsvwg-rtcweb-qos-15#section-4
>> says:
>>>
>>>        The following are the inputs provided by the WebRTC application to
>>>        the browser:
>>>
>>>        o  Flow Type: The browser provides this input as it knows if the
>> flow
>>>           is audio, interactive video with or without audio,
>> non-interactive
>>>           video with or without audio, or data.
>>>
>>>     Firstly, I'm puzzled by the apparent contradiction between the first
>>>     sentence (in which the app provides input to the browser) and the
>> second
>>>     sentence (in which to the browser provides input to something else).
>>>
>>>     Then, is it clear how the browser "knows" this? If David's statement
>> below
>>>     about the API is correct, the browser actually cannot "provide this
>> input"
>>>     as stated in the above quotation. Or I am confused.
>>>
>>>     Finally, why is audio not also subdivided into interactive and
>>>     non-interactive? As far as I can see, both are logically possible.
>>>
>>>     Regards
>>>        Brian
>>>
>>>     On 05/05/2016 03:26, Black, David wrote:
>>>     > Greetings,
>>>     >
>>>     > I write as the shepherd for the WebRTC QoS draft
>> (draft-ietf-tsvwg-rtcweb-qos).
>>>     > IETF Last Call on this draft uncovered an issue that appears to
>> also require
>>>     > changes in the Web RTC transports draft
>> (draft-ietf-rtcweb-transports).
>>>     >
>>>     > The Web RTC draft  specifies different Diffserv Codepoints (DSCPs)
>> for use with
>>>     > Interactive vs. Non-Interactive Video (with or without audio in
>> both cases):
>>>     >
>> https://tools.ietf.org/html/draft-ietf-tsvwg-rtcweb-qos-15#section-5
>>>     >
>>>     > The IETF LC issue is: How does an implementer determine whether
>> video is
>>>     > interactive vs. non-interactive?
>>>     >
>>>     > The answer (unexpected to at least me) is that this can't be done
>> for current
>>>     > WebRTC - all video has to be treated as interactive because
>> there's no API
>>>     > support to distinguish interactive video from non-interactive
>> video.  That
>>>     > doesn't appear to be stated anywhere obvious, and a TSVWG draft
>> seems
>>>     > like the wrong place to do so.
>>>     >
>>>     > Hence, this message contains initial proposed changes to both the
>> WebRTC
>>>     > Transports draft and WebRTC QoS draft to resolve this issue
>> without removing
>>>     > any of the DSCPs currently specified for video in the WebRTC QoS
>> draft.
>>>     >
>>>     > We should resolve this within the next few days, as the WebRTC QoS
>> draft is
>>>     > (finally!) on the IESG telechat agenda for May 19.
>>>     >
>>>     > --- WebRTC Transports draft - proposed changes
>>>     >
>>>     > In Section 4 Media Prioritization, after the following existing
>> text:
>>>     >
>>>     >    For media, a "media flow", which can be an "audio flow" or a
>> "video
>>>     >    flow", is what [RFC7656] calls a "media source", which results
>> in a
>>>     >    "source RTP stream" and one or more "redundancy RTP streams".
>> This
>>>     >    specification does not describe prioritization between the RTP
>>>     >    streams that come from a single "media source".
>>>     >
>>>     > Add a new paragraph:
>>>     >
>>>     >    All media flows in WebRTC are assumed to be interactive; there
>> is
>>>     >    no browser API support for non-interactive media, aside from
>> sending
>>>     >    non-interactive media content via the data channel.
>>>     >
>>>     > This ought to cite a W3C reference for the WebRTC API - the
>> following
>>>     > appears plausible:
>>>     >
>>>     >    [W3C.WD-webrtc-20120209]
>>>     >               Bergkvist, A., Burnett, D., Jennings, C., and A.
>>>     >               Narayanan, "WebRTC 1.0: Real-time Communication
>> Between
>>>     >               Browsers", World Wide Web Consortium WD WD-webrtc-
>>>     >               20120209, February 2012,
>>>     >               <http://www.w3.org/TR/2012/WD-webrtc-20120209>.
>>>     >
>>>     > -- WebRTC QoS draft - proposed changes
>>>     >
>>>     > In Section 5 DSCP Mappings, after the following existing text:
>>>     >
>>>     >    The browser SHOULD first select the flow type of the flow.
>> Within
>>>     >    the flow type, the relative importance of the flow SHOULD be
>> used to
>>>     >    select the appropriate DSCP value.
>>>     >
>>>     > Add a new paragraph:
>>>     >
>>>     >    The current WebRTC browser API does not support non-interactive
>>>     >    video; all video is assumed to be interactive
>> [I-D.ietf-rtcweb-transports].
>>>     >    Browsers MUST NOT use the DSCP mappings for Non-Interactive
>> Video
>>>     >    in Table 1.  Non-browser implementations of WebRTC MAY use the
>>>     >    DSCP mappings for Non-Interactive Video in Table 1 for video
>> that is
>>>     >    known to not be interactive, e.g., all video in a video
>> playback application
>>>     >    based on a custom implementation of the WebRTC protocols would
>> not
>>>     >    be interactive.
>>>     >
>>>     > ------
>>>     >
>>>     > Comments are welcome - as noted, above,  we should resolve this in
>>>     > the next few days in order to avoid pulling the WebRTC QoS draft
>> off
>>>     > of the May 19 IESG telechat agenda. Please reply to both the TSVWG
>> and
>>>     > RTCWEB lists, as we need  a coherent solution across both drafts.
>>>     >
>>>     > I want to thank Colin Perkins for suggesting the video playback
>> example.
>>>     >
>>>     > Thanks, --David (as WebRTC QoS draft shepherd)
>>>     >
>>>     >
>>>
>>>     _______________________________________________
>>>     rtcweb mailing list
>>>     rtcweb@ietf.org <mailto:rtcweb@ietf.org>
>>>     https://www.ietf.org/mailman/listinfo/rtcweb
>>>
>>>
>>
>