Re: [L4s-discuss] Configuring a L4S test plant

Matteo Guarna S303434 <matteo.guarna@studenti.polito.it> Wed, 04 October 2023 09:48 UTC

Return-Path: <matteo.guarna@studenti.polito.it>
X-Original-To: l4s-discuss@ietfa.amsl.com
Delivered-To: l4s-discuss@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id D0982C1519AB for <l4s-discuss@ietfa.amsl.com>; Wed, 4 Oct 2023 02:48:43 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.006
X-Spam-Level:
X-Spam-Status: No, score=-2.006 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_BLOCKED=0.001, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=studenti.polito.it
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id ZZH1lFepZf33 for <l4s-discuss@ietfa.amsl.com>; Wed, 4 Oct 2023 02:48:39 -0700 (PDT)
Received: from compass.polito.it (compass.polito.it [130.192.55.110]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id C4DDEC09015C for <l4s-discuss@ietf.org>; Wed, 4 Oct 2023 02:48:20 -0700 (PDT)
Received: from compass-fwd (localhost [127.0.0.1]) by compass.polito.it (Postfix) with ESMTP id A50F3600172E for <l4s-discuss@ietf.org>; Wed, 4 Oct 2023 11:48:17 +0200 (CEST)
Received: from localhost (localhost [127.0.0.1]) by compass.polito.it (Postfix) with ESMTP id A39AB6001720 for <l4s-discuss@ietf.org>; Wed, 4 Oct 2023 11:48:17 +0200 (CEST)
Authentication-Results: compass.polito.it (amavisd-new); dkim=pass (1024-bit key) reason="pass (just generated, assumed good)" header.d=studenti.polito.it
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d= studenti.polito.it; h=user-agent:x-sender:message-id:references :in-reply-to:subject:subject:to:from:from:date:date :content-transfer-encoding:content-type:content-type :mime-version:received:received; s=y2k10; t=1696412896; bh=o2NPF bokLx6wxqwHxod6IGEFsOIC9TA3fOtYaaTnykg=; b=qSzLMo/VnoUPLJj787dRf eDwrYK7F9MlOBYNBLgFurs83aBXpsFa8XqGWC94kQrqvcV50tftH8w+x0S6VHhYs WTViTrcy6TmuzF0u13zl4WlVQ8UdsR8qUAmbspmmSHNqsHi8H5+CX8H+tBbYXSK6 AWuJyQnhu0Fj/rrKSXn4SY=
X-Virus-Scanned: amavisd-new at studenti.polito.it
Received: from compass.polito.it ([127.0.0.1]) by localhost (compass.polito.it [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id N-X5VO9a9N1k for <l4s-discuss@ietf.org>; Wed, 4 Oct 2023 11:48:16 +0200 (CEST)
X-AccountStatus: yes
Received: from mail.studenti.polito.it (mail.studenti.polito.it [130.192.55.225]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) (Authenticated sender: s256987@studenti.polito.it) by compass.polito.it (Postfix) with ESMTPSA id E632D6001721 for <l4s-discuss@ietf.org>; Wed, 4 Oct 2023 11:48:16 +0200 (CEST)
MIME-Version: 1.0
Content-Type: text/plain; charset="US-ASCII"; format="flowed"
Content-Transfer-Encoding: 7bit
Date: Wed, 04 Oct 2023 11:48:16 +0200
From: Matteo Guarna S303434 <matteo.guarna@studenti.polito.it>
To: l4s-discuss@ietf.org
In-Reply-To: <230D9924-C32F-4DE8-8BBD-F3D35D94B05B@gmx.de>
References: <7952e11516cc7b25484b53ae1380d88c@studenti.polito.it> <230D9924-C32F-4DE8-8BBD-F3D35D94B05B@gmx.de>
Message-ID: <b82b81e36e168f6e627798d8cd588db8@studenti.polito.it>
X-Sender: matteo.guarna@studenti.polito.it
User-Agent: Roundcube Webmail/1.2-rc
X-Webmail-IP: [ 62.77.47.80 ]
X-Encoded-IP: YxypfLApKB7Sgg0zbckLeZOF1MKXjSQR6GZRA1DUbWEnPh6EHs50W0R03IwCi69QNshUptMjgXcAcHcm0/tsTmWpqFoGsMGf
Archived-At: <https://mailarchive.ietf.org/arch/msg/l4s-discuss/9lXowThLQnG1J1nqmNma8Mk8SBc>
Subject: Re: [L4s-discuss] Configuring a L4S test plant
X-BeenThere: l4s-discuss@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: "Low Latency, Low Loss, Scalable Throughput \(L4S\) " <l4s-discuss.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/l4s-discuss>, <mailto:l4s-discuss-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/l4s-discuss/>
List-Post: <mailto:l4s-discuss@ietf.org>
List-Help: <mailto:l4s-discuss-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/l4s-discuss>, <mailto:l4s-discuss-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 04 Oct 2023 09:48:43 -0000

Hi Sebastian and thank you for your answer

Il 2023-10-03 16:39 Sebastian Moeller ha scritto:
> Hi Matteo.
> 
>> On Oct 3, 2023, at 15:42, Matteo Guarna S303434 
>> <matteo.guarna@studenti.polito.it> wrote:
>> 
>> Greetings everyone,
>> 
>> I hope the question isn't too off-topic, please forgive me in advance 
>> if it is so.
>> 
>> I am still trying to perform some fairness measurements with both L4S 
>> and classic flow, although now on a physical test plant instead of a 
>> virtualized one. I'm relying on the L4STeam Github project for the 
>> deployment of the L4S architecture and I am looking for someone who's 
>> familiar with the project and might be willing to help me: in fact I 
>> seem not to be able to achieve the correct configuration.
>> 
>> My setup is very simple: I have four servers (two senders and two 
>> receivers) exchanging two traffic flows through one server acting as a 
>> router. One client-server pair uses Prague as CC, while the other uses 
>> Cubic. All servers have the patched kernel provided in the 
>> https://github.com/L4STeam/linux/ repository branch.
>> 
>> If I trigger a congestion on the router by generating both the Prague 
>> and the Cubic flows (let's say the flows measure 100 Mbit/s each, and 
>> they come though a L2 switch both on the same router's input interface 
>> on a 1Gb Ethernet link; only a 100M link though is in place on the 
>> output interface towards the receivers) I see the L4S flow having 
>> higher delay, higher jitter and a smaller (and more variable) 
>> bandwidth share. The Prague share is 1/4 of the Cubic share. I am 
>> sending an attachment with a graphical representation of the scenario 
>> here described.
>> 
>> I configured my L4S endpoints as follows:
>> 
>> - I set the CC as tcp Prague (sysctl -w 
>> net.ipv4.tcp_congestion_control=prague)
>> - I set the AccEcn, even if it's not necessary apparently (sysctl -w 
>> net.ipv4.tcp_ecn=3)
>> - I disabled the required offloading capabilities on the endpoints 
>> (sudo ethtool -K $NETIF tso off gso off gro off lro off)
> 
> 	[SM] I think you need to do the same on the router... or with your
> topology with running prague and cubic over separate end-points
> especially on the router itself. Side-node, sch_cake grew a split-gso
> mode to automatically handle this issue because it can be a bit of a
> whack-a-mole problem to make these configs stick (and in the case of
> cake the idea was to make deployment easy even for non-experts).

     [MG] I tried as you suggested and unfortunately the situation 
remains unvaried. Still, I think I missed the point regarding sch_cake, 
could you explain again what it is and if and how could it be useful? 
Apologize, I guess I perfectly fit into the definition of "non experts". 
I tried to look it up on the internet but I struggled to find any 
clarification.

>> - I configured the fair queue on the endpoints (sudo tc qdisc replace 
>> dev $NETIF root fq)
>> 
>> I configured my router as follows:
>> 
>> - I enabled forwarding through these interfaces to obtain the routing 
>> capabilities (sudo sysctl -w net.ipv4.ip_forward=1)
>> - I set the dualpi2 on both interfaces (sudo tc qdisc replace dev 
>> $NETIF root dualpi2)
>> 
>> I then applied the fair queue and disabled the offloading capabilities 
>> on both my classic endpoints to ensure that the classic and l4s flows 
>> act as fairly as possible, but to no avail (even without these 
>> precautions the results remain roughly the same).
> 
> 	[SM] Again, I think with your topology offloads at the endpoints
> should not have much influence, but at the router the well might. If
> that turns out to help this might be explained by Prague's (and/or
> DualQ's L-queue) considerably higher sensitivity to bursty traffic
> compared to classic traffic and queue.
> 
>> 
>> I am sure I am missing some important details in the setup, and I 
>> would really appreciate some help.
> 
> 	[SM] To me this looks rather straight forward, and I probably would
> try something similar, but I did not actually try in practice.
> 
> Regards & good luck
> 	Sebastian
> 

     [MG] Thanks in advance for your help, and if you have other tips or 
if you (or anyone else for that matter) are by any chance aware of a 
paper or project using the prague branch of the L4STeam repository, that 
might indeed be really helpful too.

My best regards to you and the community,
     Matteo

> 
>> 
>> Regards,
>> 
>> Matteo
>> 
>> P.s.
>> I just want to point out that by looking at the packet traces 
>> everything seems fine: Prague carries the ECN=1, the dualpi2 marks 
>> packets with ECN=3, the AccEcn control signals on the ACE fields are 
>> coherent, and no losses occur in the Prague flow, while they do happen 
>> with the Cubic flow. It looks like Prague is underperforming for 
>> whatever reason. Furthermore, if I switch back to two Cubic flows I 
>> measure perfect share, equal delay and equal jitter, so it looks to me 
>> like there are no physical impairments on the 
>> testbed.<testplant_issue.pdf>--
>> L4s-discuss mailing list
>> L4s-discuss@ietf.org
>> https://www.ietf.org/mailman/listinfo/l4s-discuss