Re: [rmcat] Hackathon: RMCAT (and CCFB) in Jitsi (fwd)

Sergio Garcia Murillo <sergio.garcia.murillo@gmail.com> Mon, 04 November 2019 11:00 UTC

Return-Path: <sergio.garcia.murillo@gmail.com>
X-Original-To: rmcat@ietfa.amsl.com
Delivered-To: rmcat@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 5F2761200FE for <rmcat@ietfa.amsl.com>; Mon, 4 Nov 2019 03:00:43 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.998
X-Spam-Level:
X-Spam-Status: No, score=-1.998 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_NONE=-0.0001, SPF_HELO_NONE=0.001, 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 E_2m2LOINrWs for <rmcat@ietfa.amsl.com>; Mon, 4 Nov 2019 03:00:41 -0800 (PST)
Received: from mail-wr1-x442.google.com (mail-wr1-x442.google.com [IPv6:2a00:1450:4864:20::442]) (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 E18751200E6 for <rmcat@ietf.org>; Mon, 4 Nov 2019 03:00:40 -0800 (PST)
Received: by mail-wr1-x442.google.com with SMTP id a11so16494509wra.6 for <rmcat@ietf.org>; Mon, 04 Nov 2019 03:00:40 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:to:references:from:message-id:date:user-agent:mime-version :in-reply-to:content-language; bh=UFc2OTvHnx5t86Agyw2Vf97935YbeeGSDzCDicNUj/4=; b=C0MfH/v0hiNUSgq1ltsdMQMN94wpfDoyiypx1LptzxyToIhiVbVWg0eyGf8f2uRGEy A9vpTXVx5hmY2wUkfgXI1Rmn1LypTNomdeR6goWc5uOzgiZBF624WLqpznKLZOIFyvcp xYko45SKqnXkI/HTdOXLr3+xndBAE+xCeUGmavxFbdBQqJQYMHk6Y2Kxy5G4vnN9FoZ2 Jl7O2lLMpJHaAvo5V1yFIBB4X1XZOCP6vR3ZYftdpJpzamAXIGxE8QnNDfMIq+MEeqZh vruDQCeZVCta7JOAhy6F9bo5SGlJz4ERzDFrYojj3cqk1uzQ4oey4CMypaqx6sPRenan P3nw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language; bh=UFc2OTvHnx5t86Agyw2Vf97935YbeeGSDzCDicNUj/4=; b=nGba6l0QRFZFt9Rj7ANcilRmj7eSzl2zKgVWN228V4Tzl9IElPzEpn/hNkoPFZu0qX wDe6D0+9KRgXJLFKDecxlqVHEglIX1nXfE00zYzL3PXNi7LHswXpOqz8p9EOfZpRFVPv Wq/yoKw4leUDSWgjFLUCxLqXkkAIH/Rr9VoQ1l1a86y/3hvexrZ0EPAgZefkuAiqa96S Hf1XsS2/1kw06LQVvtuq2nkNnAu52Ujg879nKCZWwEgkvJFZlvRbFg5shnHFBjaYY6OT GrF3FMmLlUQGdZCvtLwPCdmzdH1+1C3tVKxmQewry9zci3/Tsf42B0/OXUmcfHPdcg3Z 3CRw==
X-Gm-Message-State: APjAAAVussM842An8tv1/KJRNjYt5sPlYbPTjL6mIgP4JtjOqDqGJMq2 chQ650GKWhMkL8Vy+++9cby2/1wSKzA=
X-Google-Smtp-Source: APXvYqzfo1xG96n4lkVxXZ/t3+JZ/vjlgMCT3bfEBV9HDT+7N/NEw0Hl33eD9XHhB1+38USnTyIBLQ==
X-Received: by 2002:adf:dd12:: with SMTP id a18mr12900244wrm.123.1572865239172; Mon, 04 Nov 2019 03:00:39 -0800 (PST)
Received: from [10.255.3.162] (82.red-80-38-205.staticip.rima-tde.net. [80.38.205.82]) by smtp.googlemail.com with ESMTPSA id y6sm7912367wrw.6.2019.11.04.03.00.38 for <rmcat@ietf.org> (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 04 Nov 2019 03:00:38 -0800 (PST)
To: rmcat@ietf.org
References: <23983.5180.844349.967498@paris.clic.cs.columbia.edu> <55A979B1-88AC-4556-8888-7E2680A64500@8x8.com>
From: Sergio Garcia Murillo <sergio.garcia.murillo@gmail.com>
Message-ID: <874d183a-620c-1c01-6a3e-f380950a57ce@gmail.com>
Date: Mon, 04 Nov 2019 12:00:44 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.9.0
MIME-Version: 1.0
In-Reply-To: <55A979B1-88AC-4556-8888-7E2680A64500@8x8.com>
Content-Type: multipart/alternative; boundary="------------C049631AE1B235073BBE6EDE"
Content-Language: en-US
Archived-At: <https://mailarchive.ietf.org/arch/msg/rmcat/_2JVOWIV16O5SsCMZmB0RjljREk>
Subject: Re: [rmcat] Hackathon: RMCAT (and CCFB) in Jitsi (fwd)
X-BeenThere: rmcat@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "RTP Media Congestion Avoidance Techniques \(RMCAT\) Working Group discussion list." <rmcat.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rmcat>, <mailto:rmcat-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/rmcat/>
List-Post: <mailto:rmcat@ietf.org>
List-Help: <mailto:rmcat-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rmcat>, <mailto:rmcat-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 04 Nov 2019 11:00:43 -0000

On 01/11/2019 21:32, Jonathan Lennox wrote:
>
>
>> On Oct 22, 2019, at 10:37 AM,Sergio Garcia Murillo 
>> <sergio.garcia.murillo@gmail.com 
>> <mailto:sergio.garcia.murillo@gmail.com>> wrote:
>>
>> Hi Jonathan,
>>
>> My C++ interface is slightly different, although I have it 
>> implemented for google's transport wide feedback message:
>> https://github.com/medooze/media-server/blob/master/include/SendSideBandwidthEstimation.h
>>
>> Main difference is that I have split your packet arrival processing 
>> in two calls, one for notifying when one rtp packet is sent and one 
>> to notify when a feedback packet is received with a map of the 
>> received stats. If you prefer to have an individual call per 
>> feedbacked rtp packet, I think it would be important to notify when 
>> the last packet of the feedback has been received as for example I do 
>> the final bwe calculations there.
>
> I had a single call in hopes of using the same algorithm interface to 
> implement REMB (receiver-side) feedback with the abs-send-time 
> extension; in that case you only have information at the time of 
> packet receipt, not packet transmission, and each piece of “feedback” 
> information comes in separately.


I tried that, but mixing REMB and transport wide cc feedback on same API 
didn't worked for me.


>
> I agree that some ability to tell the algorithm which feedback came in 
> at once would be useful.
>
>> I miss also to be able to control the congestion control part of the 
>> SFU, in my implementation which is based on BBR, I rely heavily on 
>> continuously sending RTX as probing bitrate as described on Varum's 
>> FRACTAL algorithm.
>
> How tightly coupled do you think probing needs to be with the 
> algorithm?  I’ve generally considered probing to be a separable piece 
> — the prober’s responsibility is to consume the output of the bwe 
> algorithm, and to generate traffic when appropriate (i.e. when the 
> overall application has some larger discrete quantum of bandwidth that 
> it wants to be able to start sending).

Most probably is a requirement given my design choices. As I said 
before, my implementation is a delay based algorithm inspired on BBR and 
I always send RTX as probing bitrate when not sending the upper layer 
available on the SFU. So when I detect a increase on the delay when the 
bloat bitrate is hit, I update the bwe estimation, but set the probing 
bitrate to a proportionate amount lower than the bloat bitrate to 
decrease the delay back to best case scenario


[...]


>> Last topic is troubleshooting, I have created a tool for viewing bwe 
>> stats dumps from my SFU:
>> https://github.com/medooze/bwe-stats-viewer
>>
>> If we can agree on a common format for the logs, we could enhance it 
>> and use it for troubleshooting and comparing behaviors.
>
> That does look useful.  Do you have documentation for the log format 
> you’re using?


I have updated the readme with that file 
(https://github.com/medooze/bwe-stats-viewer/blob/master/README.md). 
Basically it is a csv file with a per packet stats (so should be quite 
easy to add with your API

Best regards

Sergio