Re: [rtcweb] Issue with "priority" defined in rtcweb-transports

Magnus Westerlund <magnus.westerlund@ericsson.com> Mon, 16 October 2017 12:08 UTC

Return-Path: <magnus.westerlund@ericsson.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 195BE132D49 for <rtcweb@ietfa.amsl.com>; Mon, 16 Oct 2017 05:08:54 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.219
X-Spam-Level:
X-Spam-Status: No, score=-4.219 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_PASS=-0.001, URIBL_BLOCKED=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 qGe3fIsPVYjT for <rtcweb@ietfa.amsl.com>; Mon, 16 Oct 2017 05:08:51 -0700 (PDT)
Received: from sesbmg23.ericsson.net (sesbmg23.ericsson.net [193.180.251.37]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 3B8C8127517 for <rtcweb@ietf.org>; Mon, 16 Oct 2017 05:08:51 -0700 (PDT)
X-AuditID: c1b4fb25-debff70000000c94-41-59e4a150e0ea
Received: from ESESSHC009.ericsson.se (Unknown_Domain [153.88.183.45]) by sesbmg23.ericsson.net (Symantec Mail Security) with SMTP id BA.D7.03220.051A4E95; Mon, 16 Oct 2017 14:08:49 +0200 (CEST)
Received: from [147.214.163.82] (153.88.183.153) by smtps.internal.ericsson.com (153.88.183.45) with Microsoft SMTP Server (TLS) id 14.3.352.0; Mon, 16 Oct 2017 14:08:48 +0200
To: Taylor Brandstetter <deadbeef@google.com>, RTCWeb IETF <rtcweb@ietf.org>
References: <CAK35n0Z6_N9iMZ3F2y1QXG1M9Efx4ha9sm8CBcahzjYtHwWSEg@mail.gmail.com>
From: Magnus Westerlund <magnus.westerlund@ericsson.com>
Message-ID: <183cc5c2-470b-0dab-d474-7f22134f867a@ericsson.com>
Date: Mon, 16 Oct 2017 14:10:03 +0200
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.4.0
MIME-Version: 1.0
In-Reply-To: <CAK35n0Z6_N9iMZ3F2y1QXG1M9Efx4ha9sm8CBcahzjYtHwWSEg@mail.gmail.com>
Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg="sha-256"; boundary="------------ms060904070909010601080507"
X-Originating-IP: [153.88.183.153]
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrIIsWRmVeSWpSXmKPExsUyM2K7rm7gwieRBot/cVhcXvGQ1WLtv3Z2 ByaPBZtKPZYs+ckUwBTFZZOSmpNZllqkb5fAlXH32Ry2gvV7GCsW3rvF3sD4fDZjFyMnh4SA icSdo5eYuxi5OIQEjjBKHNy9gAnC2cwo8XzJBxaQKmEBD4kvEy+zg9giAj4Sr/78YAaxhQQC JP4c+QNWwyZgIXHzRyMbiM0rYC/RfvkdWA2LgKrE1ZOzwWpEBWIkJj64yAhRIyhxcuYToDgH B6dAoMTLraoge5kFuhklfmy+xgIxX1uioamDFeJSJYnr866zTGDkn4WkfRaynllAs5gFwiTO 3jYBqWEWEJdo+rKSFcI2k5i3+SEzhK0tsWzha2aIcjWJZa1KqMIgtrXEjF8H2SBsRYkp3Q/Z IWxTiddHPzJC2EYS7/Y0si9g5FnFKFqcWpyUm25krJdalJlcXJyfp5eXWrKJERhZB7f8Vt3B ePmN4yFGAQ5GJR7evx1PIoVYE8uKK3MPMaoAzXm0YfUFRimWvPy8VCURXq+5QGnelMTKqtSi /Pii0pzU4kOM0hwsSuK8jvsuRAgJpCeWpGanphakFsFkmTg4pRoY66yKvZdLrPNbpR0fcvh3 ks2bpSo/T1jVcBku9RDcOX/Oc+0GyV8mv3SWWLUUswt66itvX3TMYeG2c/8/7DaRFezLKxfV 5yriuSq5vairJn7bArNjtgv2q6T7BFRsyZNLUbbfF7C/+9yt5j0B6koHfWf8fpezIqZ0+dEz ZzcnPl0eEpsTd+aDEktxRqKhFnNRcSIACd6W6LQCAAA=
Archived-At: <https://mailarchive.ietf.org/arch/msg/rtcweb/B4fhTb7Y4eRKTXFEgOKXig63gLw>
Subject: Re: [rtcweb] Issue with "priority" defined in rtcweb-transports
X-BeenThere: rtcweb@ietf.org
X-Mailman-Version: 2.1.22
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: Mon, 16 Oct 2017 12:08:54 -0000

Hi Taylor,

I think the text you quoted is directly related to your transmission 
queuing. And as no one was willing to write up a specific queuing 
algorithm that would be more flexible, the discussion in the WG at the 
time this was written ended up in a per prioritization level round robin 
queue basically, where each lower priority is given one transmission 
slot in the upper queue. Thus giving roughly halving, but it could be 
less actually depending on how many processes are part of a particular 
level.

I also think you scheme for relative capacity is likely good, but appear 
to be missing two important parameters. One for minimal bit-rate, and 
one for maximum. At least for audio sources, there is a limit to scaling 
these both upwards and downwards. The upper limit when reached should be 
redistributed, or otherwise it might be wasted. The minimal is an 
interesting one. Because one have to decided if this means taking more 
from the lower prioritise and how they relate to other. The classical 
example of one audio plus one video comes to mind, where one would like 
to maintain the audio in user interactive applications despite taking 
more from the video. To the point where one have to turn off video to 
maintain audio.

So, I think you have to work on the proposal a bit more.

Cheers

Magnus


Den 2017-10-11 kl. 19:29, skrev Taylor Brandstetter:
>
> (Mainly copied from https://github.com/w3c/webrtc-pc/issues/1625)
>
> When defining priority, rtcweb-transports says:
>
>     The WebRTC prioritization model is that the application tells the
>     WebRTC endpoint about the priority of media and data that is
>     controlled from the API.
>     ...
>     The priority settings affect two pieces of behavior: Packet send
>     sequence decisions and packet markings. Each is described in its own
>     section below.
>
> The sections below are "Local prioritization" and "Usage of Quality of 
> Service - DSCP and Multiplexing". The "local prioritization" section 
> gives this guidance:
>
>     When an WebRTC endpoint has packets to send on multiple streams that
>     are congestion-controlled under the same congestion control regime,
>     the WebRTC endpoint SHOULD cause data to be emitted in such a way
>     that each stream at each level of priority is being given
>     approximately twice the transmission capacity (measured in payload
>     bytes) of the level below.
>
>     Thus, when congestion occurs, a "high" priority flow will have the
>     ability to send 8 times as much data as a "very-low" priority flow if
>     both have data to send. This prioritization is independent of the
>     media type. The details of which packet to send first are
>     implementation defined.
>
>     For example: If there is a high priority audio flow sending 100 byte
>     packets, and a low priority video flow sending 1000 byte packets, and
>     outgoing capacity exists for sending >5000 payload bytes, it would be
>     appropriate to send 4000 bytes (40 packets) of audio and 1000 bytes
>     (one packet) of video as the result of a single pass of sending
>     decisions.
>
> This has two significant issues I can see:
>
>   * It only allows ratios of 1:2:4:8. This is not granular enough to
>     be very useful. Especially when balancing transmission capacity
>     between audio tracks and video tracks; in practice it's common for
>     video tracks to use much more than 8 times the bitrate of audio
>     tracks.
>   * A single enum is used for both relative bitrate and relative QoS
>     priority. But in my experience it's common for an application to
>     want a flow that uses /less/ bitrate to have a /higher/ QoS
>     priority. This may even be the /more/ common situation.
>
> So, why do we have one enum for both things? I'd propose defining the 
> priority as something that only impacts the priority in network queues 
> (QoS-level priority and SCTP priority, as previously discussed), and 
> use something else to control the relative bitrate allocation.
>
> For example, a floating point value attached to each 
> |RTCEncodingParameters| (say, |relativeCapacity|), where an encoding 
> with twice the |relativeCapacity| of another encoding will be given 
> twice the transmission capacity. If implementations can handle ratios 
> of 1:2:4:8, I don't see any reason why they shouldn't be able to 
> handle arbitrary ratios.
>
>
>
> _______________________________________________
> rtcweb mailing list
> rtcweb@ietf.org
> https://www.ietf.org/mailman/listinfo/rtcweb

-- 

Magnus Westerlund

----------------------------------------------------------------------
Media Technologies, Ericsson Research
----------------------------------------------------------------------
Ericsson AB                 | Phone  +46 10 7148287
Torshamnsgatan 23           | Mobile +46 73 0949079
SE-164 80 Stockholm, Sweden | mailto: magnus.westerlund@ericsson.com
----------------------------------------------------------------------