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

Taylor Brandstetter <deadbeef@google.com> Wed, 18 October 2017 15:53 UTC

Return-Path: <deadbeef@google.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 5F2D9132E24 for <rtcweb@ietfa.amsl.com>; Wed, 18 Oct 2017 08:53:53 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.999
X-Spam-Level:
X-Spam-Status: No, score=-1.999 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=google.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 b7jxi5O2UIxW for <rtcweb@ietfa.amsl.com>; Wed, 18 Oct 2017 08:53:50 -0700 (PDT)
Received: from mail-ua0-x229.google.com (mail-ua0-x229.google.com [IPv6:2607:f8b0:400c:c08::229]) (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 AE016132031 for <rtcweb@ietf.org>; Wed, 18 Oct 2017 08:53:50 -0700 (PDT)
Received: by mail-ua0-x229.google.com with SMTP id w45so3899309uac.3 for <rtcweb@ietf.org>; Wed, 18 Oct 2017 08:53:50 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=Jm++OIrkgfuOgl5VEC+rcmP7pY/8GEG8x5qMq440Kmw=; b=LoKuKFkXMzAvXnjmC7Vnx4ALeLGnhqW1BhFY5Jq5EZU6ynzqKCP+S23d5CKlFk+BFA 2YEwSx2gmQj4l6Kjqxu+/ZLux57BY73CM/wmuEblP+TkFLMkWB6AL0bM+ECw2Zvl+uN4 0xA9A6fCxwhXe+v5ABbj5garQP9JKaLUDibpcdbd9avU8wXBmCat4biSHikfrPn55vaD qkmBTtE8OuFEM8TCD4/jegipL4xpsCNhbWMO/OSAL+LfsvWFaOvpMXILLjDB980ooeO9 qqzEzlDwn257iaIV9Z0iKLXgNox2qUbd05mT5B6ossIteyfmEecnRy7JI4mYy19HkqB1 eQKA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=Jm++OIrkgfuOgl5VEC+rcmP7pY/8GEG8x5qMq440Kmw=; b=gqOC7MSL/SRUYfsQzbgI47BoM2ZG7XJFTXBj9oB8b0UXC0CTcQ4mxpYwzBuse2G1hh asbb7N72la4RwInC6B47jzAKQdYhw4C727La0v7EBSqXQDqAsZzwXa04duyNhusrQ9BN Gd6087Qz6bH0vqG1tSDApLKAXa+cV8IroUZmNW2dzO3R6Ob/LgAkhlUxcYv1JjoxxyPC DRrH/szQi49WC89kir8iFYMXUm4NG4+oh52mi+vth4hSLhFz9Mx967sJoujBWTPuvN80 fO6gpCHjR8r9fK1uojMaDvH34toJB9KFu0sypQysngOa70KIwxm6YgWqZRmBXKtpcAHq f5tA==
X-Gm-Message-State: AMCzsaURz8ZR9fAh7iZNpT2ndOSOQ9sHWPQJQr5ULeuV0KTE5WjaRfQf iYlLEOaCQ1oyEVixM0+udBx8Zhdi58ytI8ryeIkXDWASQc0=
X-Google-Smtp-Source: ABhQp+Rthc58zPe33OIqbpAOEvwcwHTEHqxxsbQ+SHQe35egrGzE59utDbD1kpX1PeQk68mVA2g0RPrnQ6EGBkYVHXU=
X-Received: by 10.159.50.112 with SMTP id y45mr9389095uad.166.1508342029192; Wed, 18 Oct 2017 08:53:49 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.31.169.130 with HTTP; Wed, 18 Oct 2017 08:53:48 -0700 (PDT)
In-Reply-To: <7912980F-EAA3-4F9D-81AF-EA3BF86ED2A2@alvestrand.no>
References: <CAK35n0Z6_N9iMZ3F2y1QXG1M9Efx4ha9sm8CBcahzjYtHwWSEg@mail.gmail.com> <183cc5c2-470b-0dab-d474-7f22134f867a@ericsson.com> <CAK35n0Y90137Y5hsMgS-1XoLsW5V9hkMpd1MNf9JUT7OrJKGcw@mail.gmail.com> <85ff04f8-bcae-8561-9866-48d5c16bf0a1@alvestrand.no> <CAK35n0Zu70z6nSFSMX05O913cUj_73W9V8FNK54LZrsMEdQPgg@mail.gmail.com> <6da0d797-e1db-a8e7-65d1-0e632ee55c6a@alvestrand.no> <CAK35n0ZkmvRyGGw5Zc2XoZ4WsF+XJ5qBbxa4wt+j1wtjZJinBw@mail.gmail.com> <CAOW+2dv6qEGAEW8_bp1g2=O4SH1YEdAFrKow388oy-UzdCteBg@mail.gmail.com> <7912980F-EAA3-4F9D-81AF-EA3BF86ED2A2@alvestrand.no>
From: Taylor Brandstetter <deadbeef@google.com>
Date: Wed, 18 Oct 2017 08:53:48 -0700
Message-ID: <CAK35n0accxW=_XuLq=xPzGcvfGzqVe_4dbdNDGk5dRZOEYrZPg@mail.gmail.com>
To: Harald Alvestrand <harald@alvestrand.no>
Cc: Bernard Aboba <bernard.aboba@gmail.com>, RTCWeb IETF <rtcweb@ietf.org>
Content-Type: multipart/alternative; boundary="001a11456ed6d9e94e055bd43e2f"
Archived-At: <https://mailarchive.ietf.org/arch/msg/rtcweb/lpG8GTg2VLlQvyi4Jz3poU_MIuY>
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: Wed, 18 Oct 2017 15:53:53 -0000

Bernard, I think you're describing a situation where the flows would (or at
least should) use different congestion controllers, but this guidance is
for "[w]hen an WebRTC endpoint has packets to send on multiple streams that
are congestion-controlled under the same congestion control regime".

Also, a sidenote: I'm realizing now that we probably don't want to use
RTCPriorityType to indicate which simulcast stream should be allocated bits
first. That's still mixing up QoS with something that should be
independent. Could we use the order of the RTCRtpEncodingParameters list?
If their order in the list determines the order of the RIDs in
"a=simulcast", then this already indicates preference. JSEP doesn't
explicitly say how the order is determined, though.

On Tue, Oct 17, 2017 at 9:32 PM, Harald Alvestrand <harald@alvestrand.no>
wrote:

> Throwing away packets at sender is only supposed to happen at all after
> congestion is detected. The idea is that the sender can do a better job of
> deciding what to discard than the router can.
>
>
> Den 18. oktober 2017 01:23:06 CEST, skrev Bernard Aboba <
> bernard.aboba@gmail.com>:
>>
>> In practice, many enterprise networks do their own policing/re-marking,
>> so browser-enforced bandwidth limitations may bear no relation to corpnet
>> policies.  For example, an enterprise may have its own policies on what
>> traffic should be marked "high priority" and how much bandwidth it should
>> be allocated.  As a result, the traffic marked by the browser with a
>> particular DSCP might be re-marked and different bandwidth limits might be
>> imposed. As a result, traffic that the browser would chose to drop due to
>> its own limits might have been allowed to pass through, and traffic the
>> browser would not drop might be dropped later.  In these situations, it
>> probably makes more sense for the browser just to mark traffic and let the
>> enterprise network re-mark and impose its own bandwidth limits as necessary.
>>
>> On Tue, Oct 17, 2017 at 3:10 PM, Taylor Brandstetter <deadbeef@google.com
>> > wrote:
>>
>>> I think the issue is that the example leads you to get the wrong idea
>>> about what the priority is intended to effect. Does it affect encoding, or
>>> just transport? Is the advice meant to say "give the codecs a 1:2 split of
>>> the available bandwidth"? Or "give the codecs some split of the available
>>> bandwidth determined elsewhere, then as packets are queued for
>>> transmission, send them with a 1:2 weighted round-robin scheme or something
>>> equivalent"? I interpreted it as the former. It may just be that I'm not
>>> interpreting this as intended, and there really isn't an issue, other than
>>> possibly needing some clarification.
>>>
>>> On Tue, Oct 17, 2017 at 1:18 PM, Harald Alvestrand <harald@alvestrand.no
>>> > wrote:
>>>
>>>> Den 17. okt. 2017 18:59, skrev Taylor Brandstetter:
>>>> >     For instance, screenshare-type video varies enormously in
>>>> >     bandwidth (very low at static images, enormous at slide change) -
>>>> if it
>>>> >     competes against audio, a "relative" bitrate ratio will not be
>>>> useful at
>>>> >     all.
>>>> >
>>>> >
>>>> > I think that's where it's important to get the terminology right; for
>>>> > example, rtcweb-transports uses the term "capacity", which implies
>>>> that
>>>> > it's possible to use fewer bits than the capacity. Maybe that's the
>>>> best
>>>> > way to think of this. We also can allow some implementation
>>>> flexibility.
>>>> >
>>>> >     Is there a way we can punt this?
>>>> >
>>>> >
>>>> > If we do punt this, I still think we should remove the part of
>>>> > rtcweb-transports that talks about the priority causing codecs to be
>>>> > configured with send rates at these 1:2:4:8 ratios:
>>>> >
>>>> >        o  When the available bandwidth is known from the congestion
>>>> control
>>>> >           algorithm, configure each codec and each data channel with a
>>>> >           target send rate that is appropriate to its share of the
>>>> available
>>>> >           bandwidth.
>>>> >
>>>> >
>>>> > We should make it clear that the priority only affects the delivery of
>>>> > packets (pacing decisions, QoS, SCTP priority), and not how the
>>>> packets
>>>> > are generated upstream. Assuming others agree.
>>>>
>>>> The words about configuring the codecs were intended as advice - most
>>>> codecs are terrible at dealing with random lost packets (even with FEC
>>>> and NACK and all that), so if the pacer is going to throw their packets
>>>> away, the best thing to do is to not generate them.
>>>>
>>>> (Hierarchical coding schemes with frames that have no references to them
>>>> work fine as long as you throw away complete frames, though. So
>>>> sometimes it works.)
>>>>
>>>> This section is already headed with the words "Two example
>>>> implementation strategies are:", so it should already be clear that it's
>>>> advice, not normative language.
>>>>
>>>> I'm happy to weaken the words even more, but wouldn't want to lose the
>>>> advice entirely.
>>>>
>>>
>>>
>>> _______________________________________________
>>> rtcweb mailing list
>>> rtcweb@ietf.org
>>> https://www.ietf.org/mailman/listinfo/rtcweb
>>>
>>>
>>
> --
> Sent from my Android device with K-9 Mail. Please excuse my brevity.
>