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 >>> >>> >> >
- [rtcweb] Diffserv QoS for Video Black, David
- Re: [rtcweb] [tsvwg] Diffserv QoS for Video Brian E Carpenter
- Re: [rtcweb] [tsvwg] Diffserv QoS for Video Bernard Aboba
- Re: [rtcweb] [tsvwg] Diffserv QoS for Video Brian E Carpenter
- Re: [rtcweb] [tsvwg] Diffserv QoS for Video Bernard Aboba
- Re: [rtcweb] [tsvwg] Diffserv QoS for Video Brian E Carpenter
- Re: [rtcweb] [tsvwg] Diffserv QoS for Video Stefan HÃ¥kansson LK
- Re: [rtcweb] [tsvwg] Diffserv QoS for Video Paul E. Jones
- Re: [rtcweb] [tsvwg] Diffserv QoS for Video Ruediger.Geib
- Re: [rtcweb] [tsvwg] Diffserv QoS for Video Paul E. Jones
- Re: [rtcweb] [tsvwg] Diffserv QoS for Video Ruediger.Geib
- Re: [rtcweb] [tsvwg] Diffserv QoS for Video Harald Alvestrand
- Re: [rtcweb] [tsvwg] Diffserv QoS for Video Ruediger.Geib
- Re: [rtcweb] [tsvwg] Diffserv QoS for Video Romascanu, Dan (Dan)
- Re: [rtcweb] [tsvwg] Diffserv QoS for Video Paul E. Jones
- Re: [rtcweb] [tsvwg] Diffserv QoS for Video Black, David
- Re: [rtcweb] [tsvwg] Diffserv QoS for Video Brian E Carpenter
- Re: [rtcweb] [tsvwg] Diffserv QoS for Video Ruediger.Geib
- Re: [rtcweb] [tsvwg] Diffserv QoS for Video Cullen Jennings (fluffy)