[L4s-discuss] UDP isochronous with TCP working loads

rjmcmahon <rjmcmahon@rjmcmahon.com> Tue, 28 November 2023 21:30 UTC

Return-Path: <rjmcmahon@rjmcmahon.com>
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 250B7C151531 for <l4s-discuss@ietfa.amsl.com>; Tue, 28 Nov 2023 13:30:05 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.104
X-Spam-Level:
X-Spam-Status: No, score=-2.104 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, HK_RANDOM_ENVFROM=0.001, HK_RANDOM_FROM=0.001, 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=rjmcmahon.com
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 Z5E2QRkFYytu for <l4s-discuss@ietfa.amsl.com>; Tue, 28 Nov 2023 13:30:01 -0800 (PST)
Received: from bobcat.rjmcmahon.com (bobcat.rjmcmahon.com [45.33.58.123]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 0D28FC151093 for <l4s-discuss@ietf.org>; Tue, 28 Nov 2023 13:30:00 -0800 (PST)
Received: from mail.rjmcmahon.com (bobcat.rjmcmahon.com [45.33.58.123]) by bobcat.rjmcmahon.com (Postfix) with ESMTPA id C4C971B25F for <l4s-discuss@ietf.org>; Tue, 28 Nov 2023 13:30:00 -0800 (PST)
DKIM-Filter: OpenDKIM Filter v2.11.0 bobcat.rjmcmahon.com C4C971B25F
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rjmcmahon.com; s=bobcat; t=1701207000; bh=RB195Spfz896ycE7I1Gom3kBDmUZf1yY0r5tS8wgnSc=; h=Date:From:To:Subject:From; b=fCUaMQlnwhpY+Ey9pF8czUtRcrzuVYn6Av4sTc6gtFAlDfSfGIkSRPBTKaug416zR ooKukqGAfoF0RWU44WlCVYYa6jECXXIR7jDVPoqeHKg6ZLmg6E7SQxPciwQY6ECmyH u2rwkg4dqMzrBH0scGpj6a7l4qtwFjW/n8CJX9Z0=
MIME-Version: 1.0
Date: Tue, 28 Nov 2023 13:30:00 -0800
From: rjmcmahon <rjmcmahon@rjmcmahon.com>
To: l4s-discuss@ietf.org
Message-ID: <962b5525deb40493da39cca02355c1c4@rjmcmahon.com>
X-Sender: rjmcmahon@rjmcmahon.com
Content-Type: text/plain; charset="US-ASCII"; format="flowed"
Content-Transfer-Encoding: 7bit
Archived-At: <https://mailarchive.ietf.org/arch/msg/l4s-discuss/aTck7nG1t-zYqAjnWbQRnUofP0w>
Subject: [L4s-discuss] UDP isochronous with TCP working loads
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: Tue, 28 Nov 2023 21:30:05 -0000

Hi All,

Greg White posted an iperf 2 ticket on sourceforge about isochronous, 
histograms and working loads. It's here. 
https://sourceforge.net/p/iperf2/tickets/283/

I've made the necessary code changes today and hope they meet 
requirements. Please feel free to try it out and report bugs or issues.

Generally speaking, I'm very motivated to help low latency initiatives 
with iperf 2. So please do post tickets for desired functionality as 
Greg as done. Posting tickets allows me to show my employer that iperf 2 
is somewhat driven by a collaboration of strategic and high skill 
engineers with no marketing behind it. It's for engineers and by 
engineers, and I'd like to keep that going so your support helps.

You'll need to set working-loads on the server side when UDP is set via 
-u. This just enables a second thread to take TCP accepts. You'll see 
that in the outputs. The second thread won't bother anything so one can 
do this for any test.

root@raspberrypi:/usr/local/src/iperf2-code# iperf -s -u -i 1 -e 
--working-load
------------------------------------------------------------
Server listening on UDP port 5001 with pid 20024
Working load listening on TCP port 5001
Read buffer size: 1470 Byte
UDP buffer size:  208 KByte (default)
------------------------------------------------------------

Bob

An example run is below (I didn't enable --histogram though that's 
supported too)

root@raspberrypi:/usr/local/src/iperf2-code# src/iperf -c 192.168.1.31 
-i 1 -e --trip-times --isochronous=60pps -u --working-load=up,2 -t 3
------------------------------------------------------------
Client connecting to 192.168.1.31, UDP port 5001 with pid 12569 (1/2 
flows/load)
Isochronous: 60.00 frames/sec mean=20.0 Mbit/s, stddev=0.000 bit/s, 
Period/IPG=16.67/0.000 ms
TOS set to 0x0 (Nagle on)
UDP buffer size:  208 KByte (default)
------------------------------------------------------------
[  1] local 192.168.1.30%eth0 port 42498 connected with 192.168.1.31 
port 5001 (isoch) (trip-times) (sock=3) on 2023-11-28 13:26:14.629 (PST)
[  3] local 192.168.1.30%eth0 port 42536 connected with 192.168.1.31 
port 5001 (prefetch=16384) (trip-times) (sock=5) 
(icwnd/mss/irtt=14/1448/4429) (ct=4.67 ms) on 2023-11-28 13:26:14.629 
(PST)
[  2] local 192.168.1.30%eth0 port 42534 connected with 192.168.1.31 
port 5001 (prefetch=16384) (trip-times) (sock=4) 
(icwnd/mss/irtt=14/1448/4506) (ct=4.66 ms) on 2023-11-28 13:26:14.629 
(PST)
[ ID] Interval        Transfer    Bandwidth       Write/Err  Rtry     
Cwnd/RTT(var)        NetPwr
[  2] 0.00-1.00 sec  36.7 MBytes   308 Mbits/sec  26210/0         0      
  70K/1150(132) us  33503
[  3] 0.00-1.00 sec  62.7 MBytes   526 Mbits/sec  44710/0         0      
248K/1036(7) us  63440
[ ID] Interval        Transfer     Bandwidth      Write/Err  PPS  
isoch:tx/miss/slip
[  1] 0.00-1.00 sec  2.39 MBytes  20.0 Mbits/sec  1740/0    1770 pps   
61/0/0
[  2] 1.00-2.00 sec  39.0 MBytes   327 Mbits/sec  27793/0         0      
  74K/1578(171) us  25891
[  3] 1.00-2.00 sec  67.3 MBytes   565 Mbits/sec  48021/0         0      
248K/1262(26) us  55936
[  1] 1.00-2.00 sec  2.38 MBytes  20.0 Mbits/sec  1740/0    1740 pps   
60/0/0
[  1] 2.00-3.00 sec  2.38 MBytes  20.0 Mbits/sec  1740/0    1740 pps   
60/0/0
[  1] 0.00-3.00 sec  7.16 MBytes  20.0 Mbits/sec  5222/0    1741 pps  
181/0/0
[  1] Sent 5224 datagrams
[  1] Isoch schedule errors (mean/min/max/stdev) = 
0.070/0.065/0.107/0.005 ms
[  2] 2.00-3.00 sec  38.9 MBytes   327 Mbits/sec  27782/0         0      
  77K/1436(133) us  28440
[  3] 2.00-3.00 sec  67.8 MBytes   569 Mbits/sec  48392/0         0      
248K/1264(69) us  56279
[  1] Server Report:
[ ID] Interval        Transfer     Bandwidth        Jitter   Lost/Total  
Latency avg/min/max/stdev PPS  Rx/inP  Read/Timeo/Trunc  NetPwr
[  1] 0.00-3.00 sec  7.16 MBytes  20.0 Mbits/sec   0.019 ms 0/5223 (0%) 
0.814/0.322/2.107/0.176 ms 1740 pps 1740/0(0) pkts 0/0/0 3073
[  1] 0.00-3.00 sec  7 datagrams received out-of-order
[  3] 0.00-3.01 sec   198 MBytes   550 Mbits/sec  141125/0         0     
  248K/2730(3442) us  25206
[  2] 0.00-3.01 sec   115 MBytes   319 Mbits/sec  81786/0         0      
  77K/2075(1963) us  19219


root@raspberrypi:/usr/local/src/iperf2-code# iperf -s -u -i 1 -e 
--working-load
------------------------------------------------------------
Server listening on UDP port 5001 with pid 20024
Working load listening on TCP port 5001
Read buffer size: 1470 Byte
UDP buffer size:  208 KByte (default)
------------------------------------------------------------
[  1] local 192.168.1.31%eth0 port 5001 connected with 192.168.1.30 port 
42498 (isoch) (trip-times) (sock=3) (peer 2.1.10-dev) on 2023-11-28 
13:26:14.631 (PST)
[  2] local 192.168.1.31%eth0 port 5001 connected with 192.168.1.30 port 
42536 (trip-times) (sock=5) (peer 2.1.10-dev) 
(icwnd/mss/irtt=14/1448/4485) on 2023-11-28 13:26:14.636 (PST)
[  3] local 192.168.1.31%eth0 port 5001 connected with 192.168.1.30 port 
42534 (trip-times) (sock=7) (peer 2.1.10-dev) 
(icwnd/mss/irtt=14/1448/4457) on 2023-11-28 13:26:14.637 (PST)
[ ID] Interval        Transfer    Bandwidth    Burst Latency 
avg/min/max/stdev (cnt/size) inP NetPwr  Reads=Dist
[  3] 0.00-1.00 sec  36.7 MBytes   308 Mbits/sec  
0.936/0.338/11.141/0.322 ms (26184/1470) 35.2 KByte 41108  
37713=2365:2177:2559:4428:4238:2748:2177:2364
[ ID] Interval        Transfer     Bandwidth        Jitter   Lost/Total 
Latency avg/min/max/stdev  PPS  Frame:rx/lost  Frame-latency 
avg/min/max/stdev  NetPwr
[  1] 0.00-1.00 sec  2.39 MBytes  20.0 Mbits/sec   0.022 ms 0/1741 (0%) 
0.786/0.322/2.107/0.212 ms 1770 pps   61 / 0 1.353/1.097/2.622/0.205 ms 
3184
[  1] 0.00-1.00 sec  7 datagrams received out-of-order
[  2] 0.00-1.00 sec  62.6 MBytes   525 Mbits/sec  
0.673/0.268/10.861/0.169 ms (44678/1470) 43.2 KByte 97537  
56610=2147:2603:3470:3712:3490:3552:2743:2132
[SUM-cnt] Interval        Transfer    Bandwidth  InP  Reads=Dist
[SUM-3] 0.00-1.00 sec   102 MBytes   853 Mbits/sec 78.5 KByte  
94323=4512:4780:6029:8140:7728:6300:4920:4496
[  3] 1.00-2.00 sec  39.0 MBytes   327 Mbits/sec  
0.979/0.524/5.310/0.313 ms (27793/1470) 39.1 KByte 41721  
40725=2453:2392:2987:5099:4904:3184:2392:2453
[  1] 1.00-2.00 sec  2.38 MBytes  20.0 Mbits/sec   0.024 ms 0/1740 (0%) 
0.813/0.510/1.310/0.152 ms 1740 pps   60 / 0 1.357/1.097/2.622/0.161 ms 
3073
[  2] 1.00-2.00 sec  67.3 MBytes   565 Mbits/sec  
0.686/0.328/4.076/0.175 ms (48017/1470) 47.3 KByte 102861  
61868=2469:3084:4042:4256:4015:4092:3275:2444
[SUM-3] 1.00-2.00 sec   109 MBytes   912 Mbits/sec 86.4 KByte  
102593=4922:5476:7029:9355:8919:7276:5667:4897
[  1] 2.00-3.00 sec  2.38 MBytes  20.0 Mbits/sec   0.017 ms 0/1740 (0%) 
0.843/0.548/1.328/0.152 ms 1740 pps   60 / 0 1.362/1.097/2.622/0.145 ms 
2966
[  1] 0.00-3.00 sec  7.16 MBytes  20.0 Mbits/sec   0.019 ms 0/5223 (0%) 
0.814/0.322/2.107/0.176 ms 1741 pps  181 / 0 1.362/1.097/2.622/0.145 ms 
3073
[  1] 0.00-3.00 sec  7 datagrams received out-of-order
[  3] 2.00-3.00 sec  38.9 MBytes   327 Mbits/sec  
1.001/0.488/2.403/0.288 ms (27775/1469) 39.9 KByte 40776  
40440=2315:2392:2950:5009:4790:3168:2392:2315
[  2] 2.00-3.00 sec  67.8 MBytes   569 Mbits/sec  
1.209/0.414/15.540/2.164 ms (48395/1470) 84.0 KByte 58847  
61032=2197:2946:3723:3770:3530:3769:3140:2173
[SUM-4] 2.00-3.00 sec   109 MBytes   916 Mbits/sec  124 KByte  
101472=4512:5338:6673:8779:8320:6937:5532:4488
[  3] 0.00-3.01 sec   115 MBytes   320 Mbits/sec  
0.973/0.338/11.141/0.310 ms (81786/1470) 44.0 KByte 41059  
118930=7138:6965:8502:14539:13934:9107:6965:7137
[  2] 0.00-3.01 sec   198 MBytes   552 Mbits/sec  
0.861/0.268/15.540/1.299 ms (141125/1470) 51.9 KByte 80032  
179562=6814:8635:11241:11747:11044:11419:9160:6749
[SUM-2] 0.00-3.01 sec   320 MBytes   890 Mbits/sec 95.9 KByte  
596880=13952:15600:19743:26286:24978:20526:16125:13886