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

Bernard Aboba <bernard.aboba@gmail.com> Wed, 04 May 2016 23:02 UTC

Return-Path: <bernard.aboba@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 57E2E12D5A3; Wed, 4 May 2016 16:02:05 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.699
X-Spam-Level:
X-Spam-Status: No, score=-2.699 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, HTML_MESSAGE=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 JcrHPedI4uRx; Wed, 4 May 2016 16:02:02 -0700 (PDT)
Received: from mail-vk0-x234.google.com (mail-vk0-x234.google.com [IPv6:2607:f8b0:400c:c05::234]) (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 EA0AD12D932; Wed, 4 May 2016 16:02:01 -0700 (PDT)
Received: by mail-vk0-x234.google.com with SMTP id o133so5934292vka.0; Wed, 04 May 2016 16:02:01 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=EGKgZyGBuuctKE6RR1PKbdadHrFYnUAV7hH0Yi6IzjY=; b=sXzRSoaKlPNmiEwAnSGEWS9tcYq9OQYyqQjIu0FgTt2cKxSNVGhpSv3JVGBTvV6vwK AuWRvpTr569LX4on9xf4OuZD82eWs3v7pBvQ7vbekNgIJSMoO2WU7PF2/Or+wImei2Gy CZmyVbaOKC1cvJBucakzl7ZJuD0PpluOqcCsDQBclhkE0C7/WOaY8YFlDrXyw5DB1uZD fmfRKwSNeM1bpbB2pKRasdshah1ZVUhahRNMRRTVt6VCXlBKGNVicLEwpLUTcyhEf4bs QUtPvc9loBgk72O+I8POub6cGqBmwzLvutnW5iPKa0YKC3fUG3lcb6vhUqjlmJXD8WfC gYJw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=EGKgZyGBuuctKE6RR1PKbdadHrFYnUAV7hH0Yi6IzjY=; b=lTVZwFAlESigfVcPBVTTc1/mqyyo3qZi/EBXjf3f1n5vzZ0H1+d52+9pX4tdInZLEO Wx3ewQnpDCPGuv58fsyUU5vlBYf0r0ybpNa7Hm5f5zW3FEOcLtMrGmraN/8GSRUJ1Stk azwEt5e9UMIsIlpPL8R/K0mGzw2F0xi30MIKPFYOPSWb9z0WNVU/M5sBC56W75a4hGL2 mZqUJZMIIVm66au1oxIlb8kvVV/e7AJ4d1kM1o3ot5xvJQf2DV7GO9+LYKCfsNC/2Izs bXVLXfY2GwvFjydi0ZkqvLl2zsCc3PQOL52L+9gkD+h/ZwOlL7BBvZzmb/D1M74L8XV5 3Nfw==
X-Gm-Message-State: AOPr4FWj/4WwYTCFjM5nnFhbPMLD2oNdeU9tqPUF1/85pHWl7nb1dfn1Tim/qQJU+ovFF1OGPU3SGUB/o/n7tg==
X-Received: by 10.176.69.148 with SMTP id u20mr7612309uau.9.1462402921020; Wed, 04 May 2016 16:02:01 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.176.0.46 with HTTP; Wed, 4 May 2016 16:01:41 -0700 (PDT)
In-Reply-To: <7ebc2ca5-c10f-f85e-2b6f-0d685c87f187@gmail.com>
References: <CE03DB3D7B45C245BCA0D243277949362E993518@MX104CL02.corp.emc.com> <7ebc2ca5-c10f-f85e-2b6f-0d685c87f187@gmail.com>
From: Bernard Aboba <bernard.aboba@gmail.com>
Date: Wed, 04 May 2016 16:01:41 -0700
Message-ID: <CAOW+2du4UA2Trw6hFUQ+bpBfwXSF-uJfSth5b4YCaK__ULbufA@mail.gmail.com>
To: Brian E Carpenter <brian.e.carpenter@gmail.com>
Content-Type: multipart/alternative; boundary="94eb2c11bee8a0430c05320c36a4"
Archived-At: <http://mailarchive.ietf.org/arch/msg/rtcweb/IB1IzroLzTZPz5XuYrXq1MZ9ub4>
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: Wed, 04 May 2016 23:02:05 -0000

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 priorityproperty 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> 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
> https://www.ietf.org/mailman/listinfo/rtcweb
>