Starlink has bufferbloat. Bad.
 help / color / mirror / Atom feed
From: Ben Greear <greearb@candelatech.com>
To: starlink@lists.bufferbloat.net
Subject: [Starlink] RFC: Latency test case text and example report.
Date: Sun, 26 Sep 2021 14:59:53 -0700	[thread overview]
Message-ID: <e9d000cf-14de-ed43-f604-72b02d367eb4@candelatech.com> (raw)

I have been working on a latency test that I hope can be included in the TR398 issue 3
document.  It is based somewhat on Toke's paper on buffer bloat and latency testing,
with a notable change that I'm doing this on 32 stations in part of the test.

I implemented this test case, and an example run against an enterprise grade AX AP
is here.  There could still be bugs in my implementation, but I think it is at least
close to correct:

http://www.candelatech.com/examples/tr398v3-latency-report.pdf

TLDR:  Runs OK with single station, but sees 1+second one-way latency with 32 stations and high load, and UDP often
   is not able to see any throughput at all, I guess due to too many packets being lost
   or something.  I hope to run against some cutting-edge OpenWRT APs soon.

One note on TCP Latency:  This is time to transmit a 64k chunk of data over TCP, not a single
frame.

My testbed used 32 Intel ax210 radios as stations in this test.

I am interested in feedback from this list if anyone has opinions.

Here is text of the test case:

The Latency test intends to verify latency under low, high, and maximum AP traffic load, with
1 and 32 stations. Traffic load is 4 bi-directional TCP streams for each station, plus a
low speed UDP connection to probe latency.

Test Procedure

DUT should be configured for 20Mhz on 2.4Ghz and 80Mhz on 5Ghz and stations should use
two spatial streams.

1: For each combination of:  2.4Ghz N, 5Ghz AC, 2.4Ghz AX, 5Ghz AX:

2: Configure attenuators to emulate 2-meter distance between stations and AP.

3: Create 32 stations and allow one to associate with the DUT.  The other 31 are admin-down.

4: Create AP to Station (download) TCP stream, and run for 120 seconds, recoard
    throughput as 'maximum_load'.  Stop this connection.

5: Calculate offered_load as 1% of maximum_load.

6: Create 4 TCP streams on each active station, each configured for Upload and Download rate of
    offered_load / (4 * active_station_count * 2).

6: Create 1 UDP stream on each active station, configured for 56kbps traffic Upload and 56kbps traffic Download.

7: Start all TCP and UDP connections.  Wait 30 seconds to let traffic settle.

8: Every 10 seconds for 120 seconds, record one-way download latency over the last 10 seconds for each UDP connection.  Depending on test
    equipment features, this may mean you need to start/stop the UDP every 10 seconds or clear the UDP connection
    counters.

9: Calculate offered_load as 70% of maximum_load, and repeat steps 6 - 9 inclusive.

10: Calculate offered_load as 125% of maximum_load, and repeat steps 6 - 9 inclusive.

11: Allow the other 31 stations to associate, and repeat steps 5 - 11 inclusive with all 32 stations active.


Pass/Fail Criteria

1: For each test configuration running at 1% of maximum load:  Average of all UDP latency samples must be less than 10ms.
2: For each test configuration running at 1% of maximum load:  Maximum of all UDP latency samples must be less than 20ms.
3: For each test configuration running at 70% of maximum load:  Average of all UDP latency samples must be less than 20ms.
4: For each test configuration running at 70% of maximum load:  Maximum of all UDP latency samples must be less than 40ms.
5: For each test configuration running at 125% of maximum load:  Average of all UDP latency samples must be less than 50ms.
6: For each test configuration running at 125% of maximum load:  Maximum of all UDP latency samples must be less than 100ms.
7: For each test configuration: Each UDP connection upload throughput must be at least 1/2 of requested UDP speed for final 10-second test interval.
8: For each test configuration: Each UDP connection download throughput must be at least 1/2 of requested UDP speed for final 10-second test interval.


-- 
Ben Greear <greearb@candelatech.com>
Candela Technologies Inc  http://www.candelatech.com

             reply	other threads:[~2021-09-26 21:59 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-09-26 21:59 Ben Greear [this message]
2021-09-26 22:23 ` Dave Taht
2022-09-13 15:39 ` Dave Taht
2022-09-13 15:58   ` Ben Greear
2022-09-13 16:12     ` Dave Taht
2022-09-13 16:57       ` Ben Greear
2022-09-13 18:32         ` Dave Taht
2022-09-13 19:09           ` Ben Greear
2022-09-13 19:25             ` [Starlink] [Make-wifi-fast] " Bob McMahon

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://lists.bufferbloat.net/postorius/lists/starlink.lists.bufferbloat.net/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=e9d000cf-14de-ed43-f604-72b02d367eb4@candelatech.com \
    --to=greearb@candelatech.com \
    --cc=starlink@lists.bufferbloat.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox