Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Crash with ipv6 #9

Open
dtaht opened this issue Dec 10, 2022 · 56 comments
Open

Crash with ipv6 #9

dtaht opened this issue Dec 10, 2022 · 56 comments

Comments

@dtaht
Copy link

dtaht commented Dec 10, 2022

oot@lqos:~# crusader test --stream-stagger 5 --streams 2 --load-duration 10 fd77::2
Connected to server [fd77::2]:35481
thread 'main' panicked at 'called Result::unwrap() on an Err value: "Unable to measure latency to server"', crusader-lib/src/test.rs:1304:10
stack backtrace:
0: 0x7fdf8f501ddd -
1: 0x7fdf8f53bc0c -
2: 0x7fdf8f4fc771 -
3: 0x7fdf8f503335 -
4: 0x7fdf8f503056 -
5: 0x7fdf8f5038c6 -
6: 0x7fdf8f5037b7 -
7: 0x7fdf8f502294 -
8: 0x7fdf8f5034e9 -
9: 0x7fdf8f388103 -
10: 0x7fdf8f3881f3 -
11: 0x7fdf8f3e6c8a -
12: 0x7fdf8f38e850 -
13: 0x7fdf8f392c63 -
Aborted (core dumped)

@Zoxc
Copy link
Owner

Zoxc commented Dec 11, 2022

Not sure if that is IPv6 specific. Unable to measure latency to server is due to no pong replies from the server. That could be due to packet loss or timeout (500 ms).

@dtaht
Copy link
Author

dtaht commented Dec 11, 2022

same test, same platform, over ipv4, does work, but yes, could be something else.

@Zoxc
Copy link
Owner

Zoxc commented Dec 11, 2022

Perhaps a firewall preventing IPv6 UDP connectivity?

@dtaht
Copy link
Author

dtaht commented Dec 15, 2022

no firewall in play here.

@dtaht
Copy link
Author

dtaht commented Jan 12, 2024

@richb-hanover - you using ipv6?

@richb-hanover
Copy link
Contributor

richb-hanover commented Jan 14, 2024

My configuration works fine for IPv4. I can make a crash happen when I use IPv6...

  • crusader client running on Macbook on Wi-Fi
  • crusader server running on a little odroid box with Ubuntu on Ethernet

Test connectivity using address found from ifconfig

?134 release % ping6 fd7e:5a1e:b4b3::cd8
PING6(56=40+8+8 bytes) fd7e:5a1e:b4b3:0:462:4d7f:4274:9df0 --> fd7e:5a1e:b4b3::cd8
16 bytes from fd7e:5a1e:b4b3::cd8, icmp_seq=0 hlim=64 time=3.024 ms
16 bytes from fd7e:5a1e:b4b3::cd8, icmp_seq=1 hlim=64 time=9.159 ms
16 bytes from fd7e:5a1e:b4b3::cd8, icmp_seq=2 hlim=64 time=8.820 ms
...

Server log

llladmin@odroid:~/src/crusader/src/target/release$ ./crusader serve
Server running...
Error from client [fd7e:5a1e:b4b3:0:462:4d7f:4274:9df0]:58779: Expected object

Client log

?134 release % RUST_BACKTRACE=full ./crusader test fd7e:5a1e:b4b3::cd8
Connected to server [fd7e:5a1e:b4b3::cd8]:35481
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Os { code: 57, kind: NotConnected, message: "Socket is not connected" }', crusader-lib/src/test.rs:1318:10
stack backtrace:
   0:        0x106c76ef4 - __mh_execute_header
   1:        0x106c929cb - __mh_execute_header
   2:        0x106c719f8 - __mh_execute_header
   3:        0x106c7842d - __mh_execute_header
   4:        0x106c7817e - __mh_execute_header
   5:        0x106c78968 - __mh_execute_header
   6:        0x106c788a3 - __mh_execute_header
   7:        0x106c77377 - __mh_execute_header
   8:        0x106c7857a - __mh_execute_header
   9:        0x106ca9c93 - __mh_execute_header
  10:        0x106ca9df5 - __mh_execute_header
  11:        0x106b7d9dc - __mh_execute_header
  12:        0x106a91279 - __mh_execute_header
  13:        0x106a95936 - __mh_execute_header
zsh: abort      RUST_BACKTRACE=full ./crusader test fd7e:5a1e:b4b3::cd8

@mcuee
Copy link

mcuee commented Mar 24, 2024

Tested with v0.0.10-testing and it seems to work fine with IPv6 (public IPv6 or local IPv6)

Server: Ubuntu 22.04 Proxmox PVE 8.0 LxC container (Intel N100 mini PC connected to RT-AX86U 2.5G LAN port)
Client: Windows 11 x84 using wireless (Acer Windows 11 laptop with Intel AX201 WiFi 6 adapter, Asus RT-AX86U router)

PS C:\work\speedtest\crusader-x86_64-pc-windows-msvc> .\crusader.exe test 2400:d802:xxxx:xxxx:xxxx:xxxx:feda:fbd0
Connected to server [2400:d802:xxxx:xxxx:xxxx:xxxx:feda:fbd0]:35481
Latency to server 2.06 ms
Testing download...
Testing upload...
Testing both download and upload...
Writing data...
Saved raw data as data 2024.03.24 10-26-03.crr
Saved plot as plot 2024.03.24 10-26-03.png

PS C:\work\speedtest\crusader-x86_64-pc-windows-msvc> .\crusader.exe test fe80::xxxx:xxxx:feda:fbd0
Connected to server [fe80::xxxx:xxxx:feda:fbd0]:35481
Latency to server 1.73 ms
Testing download...
Testing upload...
Testing both download and upload...
Warning: Load termination timed out. There may be residual untracked traffic in the background.
Writing data...
Saved raw data as data 2024.03.24 10-26-51.crr
Saved plot as plot 2024.03.24 10-26-51.png

plot 2024 03 24 10-26-51

@richb-hanover
Copy link
Contributor

richb-hanover commented Mar 24, 2024

I re-ran my experiment at #9 (comment) ensuring that both server and client were the current commit - a89abd2. It ran successfully without an error/crash. I think this issue can be closed.

@mcuee
Copy link

mcuee commented Mar 26, 2024

Hmm, my previous test was done using local network test.

Today I am trying to test over the internet and it has the same problem now. IPv4 passed. IPv6 failed.

ping and iperf3 over IPv6 are okay.

crusader v0.0.10-testing

Server: OpenWRT 23.05 Proxmox PVE 8.0 virtual router (Intel N100 mini PC) -- this is on network 1 (one public IPv4 address and /56 IPv6)

Client: Windows 11 x64 using wireless (Acer Windows 11 laptop with Intel AX201 WiFi 6 adapter), using wireless connection through Asus RT-AX86U -- this is on network 2 (another public IPv4 address, another /56 IPv6)

C:\work\speedtest\crusader-x86_64-pc-windows-msvc> .\crusader.exe test 219.75.xx.xxx --download
Connected to server 219.75.xx.xxx:35481
Latency to server 2.43 ms
Testing download...
Writing data...
Saved raw data as data 2024.03.26 11-45-43.crr
Saved plot as plot 2024.03.26 11-45-43.png

C:\work\speedtest\crusader-x86_64-pc-windows-msvc> .\crusader.exe test 219.75.xx.xxx --upload
Connected to server 219.75.xx.xxx:35481
Latency to server 2.64 ms
Testing upload...
Writing data...
Saved raw data as data 2024.03.26 11-46-06.crr
Saved plot as plot 2024.03.26 11-46-06.png

C:\work\speedtest\crusader-x86_64-pc-windows-msvc> .\crusader.exe test 2400:d802:xxx::1:xxxx --download
Connected to server [2400:d802:xxx::1:xxxx]:35481
thread 'main' panicked at crusader-lib\src\test.rs:1318:10:
called `Result::unwrap()` on an `Err` value: "Unable to measure latency to server"
stack backtrace:
   0:     0x7ff632d4ec83 - <unknown>
   1:     0x7ff632d69eed - <unknown>
   2:     0x7ff632d4b7d1 - <unknown>
   3:     0x7ff632d4ea8a - <unknown>
   4:     0x7ff632d50b79 - <unknown>
   5:     0x7ff632d5083b - <unknown>
   6:     0x7ff632d51064 - <unknown>
   7:     0x7ff632d50f35 - <unknown>
   8:     0x7ff632d4f319 - <unknown>
   9:     0x7ff632d50c44 - <unknown>
  10:     0x7ff632d92277 - <unknown>
  11:     0x7ff632d92733 - <unknown>
  12:     0x7ff632c0f1ea - <unknown>
  13:     0x7ff632b996f6 - <unknown>
  14:     0x7ff632b9da46 - <unknown>
  15:     0x7ff632b9da8c - <unknown>
  16:     0x7ff632d46fe8 - <unknown>
  17:     0x7ff632b9da78 - <unknown>
  18:     0x7ff632d70ee0 - <unknown>
  19:     0x7ff973547344 - BaseThreadInitThunk
  20:     0x7ff9740426b1 - RtlUserThreadStart

C:\work\speedtest\crusader-x86_64-pc-windows-msvc> .\crusader.exe test 2400:d802:xxx::1:xxxx --upload
Connected to server [2400:d802:xxx::1:xxxx]:35481
thread 'main' panicked at crusader-lib\src\test.rs:1318:10:
called `Result::unwrap()` on an `Err` value: "Unable to measure latency to server"
stack backtrace:
   0:     0x7ff632d4ec83 - <unknown>
   1:     0x7ff632d69eed - <unknown>
   2:     0x7ff632d4b7d1 - <unknown>
   3:     0x7ff632d4ea8a - <unknown>
   4:     0x7ff632d50b79 - <unknown>
   5:     0x7ff632d5083b - <unknown>
   6:     0x7ff632d51064 - <unknown>
   7:     0x7ff632d50f35 - <unknown>
   8:     0x7ff632d4f319 - <unknown>
   9:     0x7ff632d50c44 - <unknown>
  10:     0x7ff632d92277 - <unknown>
  11:     0x7ff632d92733 - <unknown>
  12:     0x7ff632c0f1ea - <unknown>
  13:     0x7ff632b996f6 - <unknown>
  14:     0x7ff632b9da46 - <unknown>
  15:     0x7ff632b9da8c - <unknown>
  16:     0x7ff632d46fe8 - <unknown>
  17:     0x7ff632b9da78 - <unknown>
  18:     0x7ff632d70ee0 - <unknown>
  19:     0x7ff973547344 - BaseThreadInitThunk
  20:     0x7ff9740426b1 - RtlUserThreadStart

C:\work\speedtest\crusader-x86_64-pc-windows-msvc> ping 2400:d802:xxx::1:xxxx 

Pinging 2400:d802:xxx::1:xxxx  with 32 bytes of data:
Reply from 2400:d802:xxx::1:xxxx : time=3ms
Reply from 2400:d802:xxx::1:xxxx : time=3ms
Reply from 2400:d802:xxx::1:xxxx : time=3ms
Reply from 2400:d802:xxx::1:xxxx : time=3ms

Ping statistics for 2400:d802:xxx::1:xxxx :
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 3ms, Maximum = 3ms, Average = 3ms

C:\work\speedtest\iperf-3.16-win64> .\iperf3.exe -c 2400:d802:xxx::1:xxxx -R
Connecting to host 2400:d802:xxx::1:xxxx, port 5201
Reverse mode, remote host 2400:d802:xxx::1:xxxx is sending
[  5] local 2400:d802:xxxx:xxxx:xxx:xxxx:xxxx:xxxx port 63833 connected to 2400:d802:xxx::1:xxxx port 5201
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-1.01   sec  36.6 MBytes   304 Mbits/sec
[  5]   1.01-2.00   sec  72.6 MBytes   617 Mbits/sec
[  5]   2.00-3.01   sec  72.4 MBytes   602 Mbits/sec
[  5]   3.01-4.01   sec  71.6 MBytes   602 Mbits/sec
[  5]   4.01-5.02   sec  85.4 MBytes   710 Mbits/sec
[  5]   5.02-6.01   sec  77.1 MBytes   650 Mbits/sec
[  5]   6.01-7.01   sec  75.4 MBytes   636 Mbits/sec
[  5]   7.01-8.01   sec  93.9 MBytes   781 Mbits/sec
[  5]   8.01-9.01   sec  62.9 MBytes   531 Mbits/sec
[  5]   9.01-10.01  sec  59.5 MBytes   496 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.03  sec   710 MBytes   594 Mbits/sec  137             sender
[  5]   0.00-10.01  sec   707 MBytes   593 Mbits/sec                  receiver

iperf Done.
C:\work\speedtest\iperf-3.16-win64> .\iperf3.exe -c 2400:d802:xxx::1:xxxx
Connecting to host 2400:d802:xxx::1:xxxx, port 5201
[  5] local 2400:d802:xxxx:xxxx:xxx:xxxx:xxxx:xxxx port 63840 connected to 2400:d802:xxx::1:xxxx port 5201
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-1.00   sec  35.4 MBytes   296 Mbits/sec
[  5]   1.00-2.00   sec  51.9 MBytes   435 Mbits/sec
[  5]   2.00-3.01   sec  69.2 MBytes   579 Mbits/sec
[  5]   3.01-4.01   sec  74.5 MBytes   622 Mbits/sec
[  5]   4.01-5.00   sec  75.4 MBytes   637 Mbits/sec
[  5]   5.00-6.01   sec  72.5 MBytes   601 Mbits/sec
[  5]   6.01-7.00   sec  77.0 MBytes   654 Mbits/sec
[  5]   7.00-8.01   sec  66.8 MBytes   555 Mbits/sec
[  5]   8.01-9.01   sec  54.2 MBytes   457 Mbits/sec
[  5]   9.01-10.01  sec  73.9 MBytes   616 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-10.01  sec   651 MBytes   545 Mbits/sec                  sender
[  5]   0.00-10.03  sec   651 MBytes   544 Mbits/sec                  receiver

iperf Done.

The OpenWRT firewall rule should be correct.
Capture_openwrt_firewall

IPv4 Test results:
plot 2024 03 26 11-45-43

plot 2024 03 26 11-46-06

@mcuee
Copy link

mcuee commented Mar 26, 2024

@richb-hanover

Just wondering if you can test over the internet to see if you can reproduce the issue or not. Thanks.

@richb-hanover
Copy link
Contributor

Two thoughts:

  1. I can't easily test over IPv6 across the public internet. My ISP doesn't provide native IPv6, and I don't have an IPV6 tunnel set up right now. I won't have time to set that up soon, but if I get that going, I'll report back.

  2. I see the log shows "Connected to server..." then the "Main thread panicked..." message. Has anyone looked at the code to see if you can winkle out what exactly is happening? Thanks.

@Zoxc
Copy link
Owner

Zoxc commented Mar 26, 2024

@mcuee Was both UDP and TCP forwarded? There seems to be some problem with IPv6 UDP here.

@mcuee
Copy link

mcuee commented Mar 26, 2024

@mcuee Was both UDP and TCP forwarded? There seems to be some problem with IPv6 UDP here.

In this paticular case, I am running crusader directly under OpenWRT router. Therefore I am not using port forwarding, but rather using Firewall -- Traffic Rules.

And yes both TCP and UDP are allowed.
Screenshot 2024-03-26 190632

@Zoxc
Copy link
Owner

Zoxc commented Mar 26, 2024

If you feel like investigating you could try to run Wireguard and see which directions send or receives UDP traffic.

@mcuee
Copy link

mcuee commented Mar 26, 2024

If you feel like investigating you could try to run Wireguard and see which directions send or receives UDP traffic.

You mean to say Wireshark, right?

I will need to learn Wireshark first. Haha. I will see what I can do.

@Zoxc
Copy link
Owner

Zoxc commented Mar 26, 2024

Yeah I meant Wireshark =P

@mcuee
Copy link

mcuee commented Mar 26, 2024

Simple things first -- to use the debug version and get the trace.

PS C:\work\speedtest\crusader\src\target\debug> .\crusader test 2400:d802:xxxx::1:xxxx --download
Connected to server [2400:d802:xxxx::1:xxxx]:35481
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: "Unable to measure latency to server"', crusader-lib\src\test.rs:1318:10
stack backtrace:
   0:     0x7ff7fe84fa22 - std::backtrace_rs::backtrace::dbghelp::trace
                               at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library\std\src\..\..\backtrace\src\backtrace\dbghelp.rs:98
   1:     0x7ff7fe84fa22 - std::backtrace_rs::backtrace::trace_unsynchronized
                               at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library\std\src\..\..\backtrace\src\backtrace\mod.rs:66
   2:     0x7ff7fe84fa22 - std::sys_common::backtrace::_print_fmt
                               at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library\std\src\sys_common\backtrace.rs:65
   3:     0x7ff7fe84fa22 - std::sys_common::backtrace::_print::impl$0::fmt
                               at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library\std\src\sys_common\backtrace.rs:44
   4:     0x7ff7fe86bddb - core::fmt::write
                               at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library\core\src\fmt\mod.rs:1232
   5:     0x7ff7fe84b85a - std::io::Write::write_fmt<std::sys::windows::stdio::Stderr>
                               at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library\std\src\io\mod.rs:1684
   6:     0x7ff7fe84f76b - std::sys_common::backtrace::_print
                               at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library\std\src\sys_common\backtrace.rs:47
   7:     0x7ff7fe84f76b - std::sys_common::backtrace::print
                               at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library\std\src\sys_common\backtrace.rs:34
   8:     0x7ff7fe851d79 - std::panicking::default_hook::closure$1
                               at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library\std\src\panicking.rs:271
   9:     0x7ff7fe8519fb - std::panicking::default_hook
                               at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library\std\src\panicking.rs:290
  10:     0x7ff7fe8524a8 - std::panicking::rust_panic_with_hook
                               at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library\std\src\panicking.rs:692
  11:     0x7ff7fe85239e - std::panicking::begin_panic_handler::closure$0
                               at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library\std\src\panicking.rs:583
  12:     0x7ff7fe850409 - std::sys_common::backtrace::__rust_end_short_backtrace<std::panicking::begin_panic_handler::closure_env$0,never$>
                               at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library\std\src\sys_common\backtrace.rs:150
  13:     0x7ff7fe852050 - std::panicking::begin_panic_handler
                               at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library\std\src\panicking.rs:579
  14:     0x7ff7fe877705 - core::panicking::panic_fmt
                               at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library\core\src\panicking.rs:64
  15:     0x7ff7fe877c26 - core::result::unwrap_failed
                               at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library\core\src\result.rs:1750
  16:     0x7ff7fe31d2af - enum2$<core::result::Result<crusader_lib::file_format::RawResult,alloc::boxed::Box<dyn$<core::error::Error>,alloc::alloc::Global> > >::unwrap<crusader_lib::file_format::RawResult,alloc::boxed::Box<dyn$<core::error::Error>,alloc::alloc::Global> >
                               at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc\library\core\src\result.rs:1090
  17:     0x7ff7fe31595a - crusader_lib::test::test
                               at C:\work\speedtest\crusader\src\crusader-lib\src\test.rs:1316
  18:     0x7ff7fe1a3fbd - crusader::main
                               at C:\work\speedtest\crusader\src\crusader\src\main.rs:120
  19:     0x7ff7fe1af62b - core::ops::function::FnOnce::call_once<void (*)(),tuple$<> >
                               at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc\library\core\src\ops\function.rs:250
  20:     0x7ff7fe1ab53e - std::sys_common::backtrace::__rust_begin_short_backtrace<void (*)(),tuple$<> >
                               at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc\library\std\src\sys_common\backtrace.rs:134
  21:     0x7ff7fe1ab53e - std::sys_common::backtrace::__rust_begin_short_backtrace<void (*)(),tuple$<> >
                               at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc\library\std\src\sys_common\backtrace.rs:134
  22:     0x7ff7fe1a71c1 - std::rt::lang_start::closure$0<tuple$<> >
                               at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc\library\std\src\rt.rs:166
  23:     0x7ff7fe84635e - core::ops::function::impls::impl$2::call_once
                               at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library\core\src\ops\function.rs:287
  24:     0x7ff7fe84635e - std::panicking::try::do_call
                               at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library\std\src\panicking.rs:487
  25:     0x7ff7fe84635e - std::panicking::try
                               at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library\std\src\panicking.rs:451
  26:     0x7ff7fe84635e - std::panic::catch_unwind
                               at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library\std\src\panic.rs:140
  27:     0x7ff7fe84635e - std::rt::lang_start_internal::closure$2
                               at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library\std\src\rt.rs:148
  28:     0x7ff7fe84635e - std::panicking::try::do_call
                               at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library\std\src\panicking.rs:487
  29:     0x7ff7fe84635e - std::panicking::try
                               at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library\std\src\panicking.rs:451
  30:     0x7ff7fe84635e - std::panic::catch_unwind
                               at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library\std\src\panic.rs:140
  31:     0x7ff7fe84635e - std::rt::lang_start_internal
                               at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library\std\src\rt.rs:148
  32:     0x7ff7fe1a719a - std::rt::lang_start<tuple$<> >
                               at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc\library\std\src\rt.rs:165
  33:     0x7ff7fe1a6fb9 - main
  34:     0x7ff7fe875650 - invoke_main
                               at D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:78
  35:     0x7ff7fe875650 - __scrt_common_main_seh
                               at D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288
  36:     0x7ffa67cb257d - BaseThreadInitThunk
  37:     0x7ffa698aaa58 - RtlUserThreadStart

@mcuee
Copy link

mcuee commented Mar 26, 2024

Yeah I meant Wireshark =P

I am using a Proxmox PVE 8.0 LxC container as the client this time.

crusader v0.0.10-testing
Server: OpenWRT 23.05 Proxmox PVE 8.0 virtual router (Intel N100 mini PC) -- this is on network 1 (one public IPv4 address and /56 IPv6 addresses)
Client: Debian 12 LxC container under PVE 8.0 (Intel N100 mini PC) -- this is on network 2 (another public IPv4 address and /56 IPv6 addresses)

Here is the output from tcpdump. Hopefully it will give some hints about the potential issue.
Note: I did not edit the public IPv6 addresses of the server and client this time as they are anyway dynamic.
tcpdump2.txt

More detailed tcpdump output using -v.
tcpdump3.txt

@mcuee
Copy link

mcuee commented Mar 26, 2024

@dtaht

Just wondering if you can test over the internet again to see if the issue exists on your side or not. Thanks.

@mcuee
Copy link

mcuee commented Mar 26, 2024

My setup is a bit strange that the two home networks are actually sharing the same upstream ONT and a smart switch. This is the reason I can only test either download or upload but not both.

ISP ONT -- TP-Link TL-SG105E smart switch --> two networks
Network 1 -- Asus RT-AX86U router -- PVE 8.0 host (Intel N100 mini PC 1 with dual 2.5G NICs)
Network 2 -- OpenWRT virtual router on PVE 8.0 host (Intel N100 mini PC 2 with quad 2.5G NICs) -- Asus RT-AX82U AP

@dtaht
Copy link
Author

dtaht commented Jul 30, 2024

@mcuee I am sorry but I was not paying attention to github since march...

@Zoxc
Copy link
Owner

Zoxc commented Jul 31, 2024

@mcuee Could you try out https://github.com/Zoxc/crusader/tree/udp-spawn on the server and see if it helps?

@richb-hanover
Copy link
Contributor

@dtaht @mcuee - If you get a chance, do try out version 0.0.12 - the master branch. It definitely got rid of the IPv6 crash for me (as well as another amusing bug (#22) if a device advertised two IPv6 addresses...)

@mcuee
Copy link

mcuee commented Aug 4, 2024

@dtaht @mcuee - If you get a chance, do try out version 0.0.12 - the master branch. It definitely got rid of the IPv6 crash for me (as well as another amusing bug (#22) if a device advertised two IPv6 addresses...)

@richb-hanover

Are you testing over the internet?

I am not able to test crusader over the internet with IPv6 now. Hopefully there is a public Crusader server in the future.

Testing over the local network has no issues (both the server and client has public IPv6 addresses).

PS C:\work\speedtest\crusader-x86_64-pc-windows-msvc> .\crusader test  2400:d802:xxxx:6000:401b:78ff:fe25:66a4
[2024-08-04 18:47:55] Client version 0.0.12 running
[2024-08-04 18:47:55] Connected to server [2400:d802:xxx:6000:401b:78ff:fe25:66a4]:35481
[2024-08-04 18:47:57] Latency to server 2.03 ms
[2024-08-04 18:47:58] Testing download...
[2024-08-04 18:48:04] Testing upload...
[2024-08-04 18:48:16] Testing both download and upload...
[2024-08-04 18:48:22] Warning: Load termination timed out. There may be residual untracked traffic in the background.
[2024-08-04 18:48:22] Writing data...
[2024-08-04 18:48:22] Saved raw data as data 2024.08.04 18-48-22.crr
[2024-08-04 18:48:22] Saved plot as plot 2024.08.04 18-48-22.png

plot 2024 08 04 18-48-22

@richb-hanover
Copy link
Contributor

@mcuee - No, I don't have an internet test setup yet. I'm looking at how to dockerize the server for minimal hassle (then I have to dragoon one of my VPS servers into running it...)

@mcuee
Copy link

mcuee commented Aug 5, 2024

@Zoxc and @richb-hanover

I am able to test Crusader over the Internet using IPv6 today and it works fine. Using 0.012 release.

Server: OpenWRT 23.05 x86_64
Client: Windows 11

So I consider this issue closed.

PS C:\work\speedtest\crusader-x86_64-pc-windows-msvc> .\crusader test  2400:d802:xxxx::84af --download
[2024-08-05 20:25:05] Client version 0.0.12 running
[2024-08-05 20:25:05] Connected to server [2400:d802:xxxx::84af]:35481
[2024-08-05 20:25:07] Latency to server 2.50 ms
[2024-08-05 20:25:08] Testing download...
[2024-08-05 20:25:15] Writing data...
[2024-08-05 20:25:15] Saved raw data as data 2024.08.05 20-25-15.crr
[2024-08-05 20:25:15] Saved plot as plot 2024.08.05 20-25-15.png

PS C:\work\speedtest\crusader-x86_64-pc-windows-msvc> .\crusader test  2400:d802:xxxx::84af --upload
[2024-08-05 20:25:24] Client version 0.0.12 running
[2024-08-05 20:25:24] Connected to server [2400:d802:xxxx::84af]:35481
[2024-08-05 20:25:26] Latency to server 2.69 ms
[2024-08-05 20:25:27] Testing upload...
[2024-08-05 20:25:39] Warning: Load termination timed out. There may be residual untracked traffic in the background.
[2024-08-05 20:25:39] Writing data...
[2024-08-05 20:25:39] Saved raw data as data 2024.08.05 20-25-39.crr
[2024-08-05 20:25:39] Saved plot as plot 2024.08.05 20-25-39.png

@dtaht
Copy link
Author

dtaht commented Aug 14, 2024

(and great news about ipv6, thx!)

@mcuee
Copy link

mcuee commented Aug 22, 2024

@richb-hanover @mcuee if ever you feel inspired I still maintain 6 linode servers for these sort of tests. I would love to update them to 12 and hand off further maintenance off to someone...

@dtaht

That would be great.

@richb-hanover is probably more experienced in hosting servers.

I am relatively new to Open Source networking related projects myself even though I am an experienced Open Source Projects on the testing and technical support side. I will happy be able to have access to and even manage one or two servers.

I have lost the abitlity to have two independent networks with my ISP with the new 5Gbps Fibre internet plan (Singapore ISPs are pushing for 3Gbps/5Gbps/10Gbps plans, because the government wants 50% of the household to be on 10Gbps plan in 2028.

Now I have only single public IPv4 address and single /64 IPv6 prefix delegation. Previously I had two public IPv4 addresses and two /56 IPv6 IPv6 prefix delegations with my 1Gbps Fibre Internet connections.

@mcuee
Copy link

mcuee commented Oct 1, 2024

@Zoxc

Maybe this issue can be closed. Thanks.

@mcuee
Copy link

mcuee commented Oct 1, 2024

One successful IPv6 test using @dtaht's public Crusader test server (wired connection).

PS C:\work\speedtest\crusader_bin\v0.3.1> .\crusader.exe test flent-fremont.bufferbloat.net
[2024-10-01 11:49:58] Client version 0.3.1 running
[2024-10-01 11:49:58] Connected to server [2600:3c01::f03c:91ff:fe50:48d4]:35481
[2024-10-01 11:50:00] Idle latency to server 179.74 ms
[2024-10-01 11:50:03] Testing download...
[2024-10-01 11:50:16] Testing upload...
[2024-10-01 11:50:29] Testing both download and upload...

-- Download test --
          Throughput: 26.14 Mbps
             Latency: 188.4 ms (89.8 ms down, 98.6 ms up)
         Packet loss: 0.15% down, 0% up

-- Upload test --
          Throughput: 277.43 Mbps
             Latency: 736.3 ms (92.0 ms down, 644.2 ms up)
         Packet loss: 0%

-- Bidirectional test --
          Throughput: 280.64 Mbps (4.86 Mbps down, 275.77 Mbps up)
             Latency: 656.8 ms (93.3 ms down, 563.4 ms up)
         Packet loss: 0.15% down, 0% up

[2024-10-01 11:50:44] Writing data...
[2024-10-01 11:50:44] Saved raw data as crusader-results\crusader-results\test 2024-10-01 11.50.44.crr
[2024-10-01 11:50:44] Saved plot as crusader-results\test 2024-10-01 11.50.44.png

test 2024-10-01 11 50 44

@dtaht
Copy link
Author

dtaht commented Oct 2, 2024

that is really miserable latency.

But it is probably coming from somewhere upstream of you. A simultaneous mtr would show where.

I also, on your behalf, just put up a 4Gbps capable server at singapore.starlink.taht.net

@dtaht
Copy link
Author

dtaht commented Oct 2, 2024

this is what my starlink looks like to Singapore:

plot 2024 10 02 11-10-37

crusader test --load-duration 60 --streams 8 --stream-stagger 4 singapore.starlink.taht.net

@mcuee
Copy link

mcuee commented Oct 3, 2024

@dtaht

Thanks a lot for the help. Somehow the server does not work for me.

IPv4 ping is very good but IPv6 ping is very bad. Bad IPv6 latency is probabl due to Singtel, my ISP. It has similar problem with another main local ISP M1 (IPv4 is good but IPv6 is bad). But I can not carry out the test with either IPv4 or IPv6.

  1. IPv4 only wireless network
PS C:\work\speedtest\crusader_bin\v0.3.1> .\crusader.exe test --load-duration 60 --streams 8 --stream-stagger 4 singapore.starlink.taht.net
[2024-10-03 08:06:14] Client version 0.3.1 running
[2024-10-03 08:06:16] Client failed
Error: Failed to connect to server

Caused by:
    A socket operation was attempted to an unreachable network. (os error 10051)

PS C:\work\speedtest\crusader_bin\v0.3.1> ping -4 singapore.starlink.taht.net

Pinging singapore.starlink.taht.net [172.236.148.60] with 32 bytes of data:
Reply from 172.236.148.60: bytes=32 time=7ms TTL=45
Reply from 172.236.148.60: bytes=32 time=8ms TTL=45
Reply from 172.236.148.60: bytes=32 time=7ms TTL=45
Reply from 172.236.148.60: bytes=32 time=7ms TTL=45

Ping statistics for 172.236.148.60:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 7ms, Maximum = 8ms, Average = 7ms

PS C:\work\speedtest\crusader_bin\v0.3.1> ping -6 singapore.starlink.taht.net
Ping request could not find host singapore.starlink.taht.net. Please check the name and try again.
  1. IPv4/IPv6 capable wireless network.
PS C:\work\speedtest\crusader_bin\v0.3.1> ping -6 singapore.starlink.taht.net

Pinging singapore.starlink.taht.net [2a01:7e00::f03c:93ff:fe26:188a] with 32 bytes of data:
Reply from 2a01:7e00::f03c:93ff:fe26:188a: time=312ms
Reply from 2a01:7e00::f03c:93ff:fe26:188a: time=312ms
Reply from 2a01:7e00::f03c:93ff:fe26:188a: time=312ms
Reply from 2a01:7e00::f03c:93ff:fe26:188a: time=392ms

Ping statistics for 2a01:7e00::f03c:93ff:fe26:188a:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 312ms, Maximum = 392ms, Average = 332ms

PS C:\work\speedtest\crusader_bin\v0.3.1> .\crusader.exe test --load-duration 60 --streams 8 --stream-stagger 4 singapore.starlink.taht.net
[2024-10-03 08:08:00] Client version 0.3.1 running
[2024-10-03 08:08:06] Client failed
Error: Failed to connect to server

Caused by:
    No connection could be made because the target machine actively refused it. (os error 10061)

@mcuee
Copy link

mcuee commented Oct 3, 2024

Info about my ISP - Singtel (Singapore Telecom)
https://bgp.tools/as/9506#connectivity

You can see different routing for IPv4 and IPv6.

Using the same IPv4/IPv6 capable wireless network.

PS C:\work\speedtest\crusader_bin\v0.3.1> tracert singapore.starlink.taht.net

Tracing route to singapore.starlink.taht.net [172.236.148.60]
over a maximum of 30 hops:

  1    12 ms     1 ms    <1 ms  RT-AX86U-2D40 [192.168.50.1]
  2     4 ms     1 ms     1 ms  192.168.1.254
  3     4 ms     2 ms     2 ms  bb115-xx-xx-254.singnet.com.sg [115.xx.xx.254]
  4     6 ms     3 ms     3 ms  165.21.193.22
  5     6 ms     3 ms     3 ms  165.21.193.21
  6     6 ms     3 ms     3 ms  165.21.138.245
  7     5 ms     3 ms     3 ms  SN-SINQT1-BO403-ae1.singnet.com.sg [165.21.138.85]
  8    58 ms    36 ms    36 ms  ip-202-147-32-136.asianetcom.net [202.147.32.136]
  9     5 ms     4 ms     4 ms  unknown.telstraglobal.net [210.57.65.103]
 10    18 ms    40 ms    22 ms  ae2.r01.border01.sin02.fab.netarch.akamai.com [23.56.138.71]
 11     *        *        *     Request timed out.
 12     6 ms     4 ms     3 ms  lo1.r03.stem01.sin02.fab.netarch.akamai.com [23.45.79.28]
 13     7 ms     4 ms     4 ms  lo1.r02.spine03.sin02.fab.netarch.akamai.com [23.45.79.19]
 14    30 ms     4 ms     3 ms  lo1.r03.leaf03.sin02.fab.netarch.akamai.com [23.45.79.8]
 15     6 ms     3 ms     5 ms  lo1.r12b.tor03.sin02.fab.netarch.akamai.com [23.45.79.59]
 16    21 ms     3 ms    18 ms  a23-222-121-225.deploy.static.akamaitechnologies.com [23.222.121.225]
 17     7 ms     4 ms     4 ms  a23-222-120-43.deploy.static.akamaitechnologies.com [23.222.120.43]
 18     4 ms     4 ms     4 ms  172-236-148-60.ip.linodeusercontent.com [172.236.148.60]

Trace complete.

PS C:\work\speedtest\crusader_bin\v0.3.1> tracert -6 singapore.starlink.taht.net

Tracing route to singapore.starlink.taht.net [2a01:7e00::f03c:93ff:fe26:188a]
over a maximum of 30 hops:

  1     4 ms     1 ms     1 ms  RT-AX86U-2D40 [2400:d803:xxxx:xxx::1]
  2     7 ms     3 ms     3 ms  fd00::1
  3     7 ms     4 ms    10 ms  2400:d800:a::1
  4     8 ms     *        5 ms  2001:c20:0:4::4b
  5     6 ms     4 ms     5 ms  2001:c20:0:3::8
  6     6 ms     4 ms     *     2001:c10:80:2::a21
  7     4 ms     4 ms     4 ms  2001:c10:80:2::915
  8   185 ms   201 ms     *     2001:c10:80:1::3ce
  9     *        *        *     Request timed out.
 10     *        *        *     Request timed out.
 11     *        *        *     Request timed out.
 12     *        *        *     Request timed out.
 13     *        *        *     Request timed out.
 14     *        *        *     Request timed out.
 15     *        *        *     Request timed out.
 16     *        *        *     Request timed out.
 17   408 ms   315 ms   333 ms  2600:3c0f:7:32::2
 18   315 ms   298 ms   299 ms  2600:3c0f:7:35::37
 19   308 ms   410 ms   307 ms  2600:3c0f:7::1891
 20   312 ms   317 ms   313 ms  2a01:7e00::f03c:93ff:fe26:188a

Trace complete.

@mcuee
Copy link

mcuee commented Oct 3, 2024

IPv4/IPv6 traceroute to flent-fremont.bufferbloat.net.

PS C:\work\speedtest\crusader_bin\v0.3.1> tracert -4 flent-fremont.bufferbloat.net

Tracing route to flent-fremont.bufferbloat.net [23.239.20.41]
over a maximum of 30 hops:

  1     1 ms     1 ms     1 ms  RT-AX86U-2D40 [192.168.50.1] (Sub router -- Asus RT-AX86U, Double NAT)
  2     5 ms     1 ms     1 ms  192.168.1.254 (Main router, Singtel ZTE F8648P XGS-PON ONR)
  3     5 ms     2 ms     2 ms  bb115-xx-xx-254.singnet.com.sg [115.xx.xx.254]
  4     5 ms     3 ms     3 ms  165.21.193.22
  5     5 ms     3 ms     3 ms  165.21.193.21
  6     6 ms     3 ms     2 ms  165.21.138.245
  7    14 ms     4 ms     3 ms  SN-SINQT1-BO403-ae1.singnet.com.sg [165.21.138.85]
  8     5 ms     3 ms     3 ms  203.208.177.213
  9     5 ms     3 ms     4 ms  xn-lhrcl1-bo706.ix.singtel.com [203.208.183.81]
 10     5 ms     4 ms    39 ms  203.208.158.9
 11   278 ms   200 ms   202 ms  203.208.151.234
 12   173 ms   237 ms   200 ms  203.208.171.118
 13   244 ms   202 ms   168 ms  lax-b22-link.ip.twelve99.net [62.115.8.202]
 14   230 ms   201 ms   173 ms  lax-b23-link.ip.twelve99.net [62.115.143.38]
 15   219 ms   230 ms   201 ms  akamai-ic-369467.ip.twelve99-cust.net [213.248.73.73]
 16   166 ms   197 ms   166 ms  ae11.r01.lax01.icn.netarch.akamai.com [23.207.234.38]
 17   266 ms   207 ms   176 ms  ae18.r02.sjc01.icn.netarch.akamai.com [23.193.113.13]
 18   280 ms   185 ms   219 ms  ae2.r12.sjc01.ien.netarch.akamai.com [23.207.232.41]
 19   271 ms   201 ms   201 ms  ae22.gw4.scz1.netarch.akamai.com [23.203.158.53]
 20     *        *        *     Request timed out.
 21     *        *        *     Request timed out.
 22     *        *        *     Request timed out.
 23   252 ms   201 ms   177 ms  li726-41.members.linode.com [23.239.20.41]

Trace complete.

PS C:\work\speedtest\crusader_bin\v0.3.1> tracert -6 flent-fremont.bufferbloat.net

Tracing route to flent-fremont.bufferbloat.net [2600:3c01::f03c:91ff:fe50:48d4]
over a maximum of 30 hops:

  1    14 ms     1 ms     1 ms  RT-AX86U-2D40 [2400:d803:xxxx:xxx::1]
  2     4 ms     4 ms     4 ms  fd00::1
  3     5 ms     4 ms     4 ms  2400:d800:a::1
  4     5 ms     *        5 ms  2001:c20:0:4::4b
  5     6 ms     4 ms     4 ms  2001:c20:0:3::8
  6     5 ms     4 ms     3 ms  2001:c10:80:2::a21
  7     5 ms     *        6 ms  2001:c10:80:2::915
  8   188 ms   217 ms   201 ms  2001:c10:80:1::16e
  9     *        *        *     Request timed out.
 10     *        *        *     Request timed out.
 11     *        *        *     Request timed out.
 12     *        *        *     Request timed out.
 13     *        *        *     Request timed out.
 14   248 ms   200 ms   203 ms  2600:3c0f:3:32::4
 15   294 ms   201 ms   186 ms  2600:3c0f:3:35::40
 16   290 ms   201 ms     *     2600:3c0f:3::1250
 17   198 ms   184 ms   221 ms  2600:3c01::f03c:91ff:fe50:48d4

Trace complete.

@mcuee
Copy link

mcuee commented Oct 3, 2024

IPv4/IPv6 traceroute to Dallas.starlink.taht.net.

PS C:\work\speedtest\crusader_bin\v0.3.1> tracert -4 Dallas.starlink.taht.net

Tracing route to Dallas.starlink.taht.net [72.14.183.212]
over a maximum of 30 hops:

  1     1 ms     1 ms    <1 ms  RT-AX86U-2D40 [192.168.50.1]
  2     2 ms     1 ms     2 ms  192.168.1.254
  3     3 ms     2 ms     3 ms  bb115-xx-xx-254.singnet.com.sg [115.xx.xx.254]
  4     4 ms     3 ms     3 ms  165.21.193.22
  5     6 ms     4 ms     3 ms  165.21.193.21
  6     6 ms     4 ms     3 ms  165.21.138.245
  7     6 ms     3 ms     3 ms  SN-SINQT1-BO403-ae1.singnet.com.sg [165.21.138.85]
  8     6 ms     3 ms     4 ms  203.208.177.213
  9     6 ms     4 ms     4 ms  xn-lhrcl1-bo706.ix.singtel.com [203.208.183.81]
 10     6 ms     4 ms     4 ms  203.208.158.9
 11   228 ms   177 ms   177 ms  203.208.154.70
 12   234 ms   201 ms   201 ms  203.208.171.118
 13   274 ms   177 ms   226 ms  lag-2.mpr2.lax12.us.zip.zayo.com [64.125.35.201]
 14     *        *        *     Request timed out.
 15     *        *        *     Request timed out.
 16   273 ms   202 ms   305 ms  zayo-akamai.ter1.lax12.us.zip.zayo.com [208.184.12.101]
 17   174 ms   173 ms   181 ms  ae10.r02.lax01.icn.netarch.akamai.com [23.203.155.248]
 18   223 ms   303 ms   304 ms  ae24.r21.dfw01.icn.netarch.akamai.com [23.32.62.108]
 19   211 ms   305 ms   305 ms  ae0.r22.dfw01.mag.netarch.akamai.com [23.209.172.66]
 20   231 ms   305 ms   304 ms  ae2.r21.dfw01.ien.netarch.akamai.com [23.209.172.97]
 21   224 ms   306 ms   304 ms  ae22.gw1.rin1.netarch.akamai.com [23.203.147.39]
 22     *        *        *     Request timed out.
 23     *        *        *     Request timed out.
 24     *        *        *     Request timed out.
 25     *        *        *     Request timed out.
 26   205 ms   224 ms   303 ms  li46-212.members.linode.com [72.14.183.212]

Trace complete.
PS C:\work\speedtest\crusader_bin\v0.3.1> tracert -6 Dallas.starlink.taht.net

Tracing route to Dallas.starlink.taht.net [2600:3c00::f03c:92ff:fe44:a9ab]
over a maximum of 30 hops:

  1     1 ms     1 ms    <1 ms  RT-AX86U-2D40 [2400:d803:xxxx:xxx::1]
  2     6 ms     4 ms     5 ms  fd00::1
  3     8 ms     4 ms     4 ms  2400:d800:a::1
  4     9 ms     *        7 ms  2001:c20:0:4::4b
  5     7 ms     4 ms     4 ms  2001:c20:0:3::8
  6     7 ms     4 ms     *     2001:c10:80:2::a21
  7     4 ms     4 ms     5 ms  2001:c10:80:2::915
  8   283 ms   190 ms     *     2001:c10:80:1::16e
  9     *        *        *     Request timed out.
 10     *        *        *     Request timed out.
 11     *        *        *     Request timed out.
 12     *        *        *     Request timed out.
 13   287 ms   209 ms   212 ms  2600:3c0f:2:32::2
 14   217 ms   249 ms   217 ms  2600:3c0f:2:32::4
 15   238 ms   208 ms     *     2600:3c0f:2:35::64
 16   303 ms   222 ms   285 ms  2600:3c0f:2::2267
 17   295 ms   303 ms   304 ms  2600:3c00::f03c:92ff:fe44:a9ab

Trace complete.

@mcuee
Copy link

mcuee commented Oct 3, 2024

mtr under Ubuntu 24.04 Intel N100 mini PC, very much similar to Windows machine.

mcuee@miniroute10g:~$ mtr -4 flent-fremont.bufferbloat.net
                                                 My traceroute  [v0.95]
miniroute10g (192.168.1.3) -> flent-fremont.bufferbloat.net (23.239.20.41)                     2024-10-03T11:23:31+0800
 Loss%   Snt   Last   Avg  Best  Wrst StDevtics   Order of fields   quit
                                                                               Packets               Pings
 Host                                                                        Loss%   Snt   Last   Avg  Best  Wrst StDev
 1. 192.168.1.254                                                             0.0%   181    0.7   0.6   0.4   0.8   0.1
 2. bb115-xx-xx-254.singnet.com.sg                                            0.0%   181    1.6   1.4   1.0   8.4   0.6
 3. 165.21.193.22                                                             0.0%   180    2.0   2.9   1.7  38.6   4.2
 4. 165.21.193.21                                                             1.1%   180    1.8   3.3   1.5  42.8   4.9
 5. 165.21.138.245                                                            0.0%   180    1.9   3.6   1.3  33.9   5.0
 6. SN-SINQT1-BO403-ae1.singnet.com.sg                                        0.0%   180    2.1   2.0   1.6   2.6   0.2
 7. 203.208.177.213                                                           0.0%   180    1.8   2.5   1.5  47.7   3.6
 8. xn-lhrcl1-bo706.ix.singtel.com                                            0.0%   180    2.4   4.0   2.2  38.2   4.9
 9. 203.208.158.9                                                             0.0%   180    2.6   3.3   2.0  28.8   3.7
10. 203.208.151.234                                                           0.6%   180  182.7 178.6 171.3 187.5   4.7
11. 203.208.171.118                                                           0.0%   180  183.4 179.3 170.9 226.1   6.9
12. lax-b22-link.ip.twelve99.net                                             18.3%   180  179.0 174.7 167.4 183.0   5.0
13. lax-b23-link.ip.twelve99.net                                              0.0%   180  185.4 179.6 171.1 212.5   6.4
14. akamai-ic-369467.ip.twelve99-cust.net                                     0.0%   180  188.8 183.3 175.3 191.0   4.8
15. ae11.r01.lax01.icn.netarch.akamai.com                                     1.7%   180  175.2 170.4 162.5 178.7   4.7
16. ae18.r02.sjc01.icn.netarch.akamai.com                                     0.0%   180  188.3 180.9 172.9 188.8   4.8
17. ae2.r12.sjc01.ien.netarch.akamai.com                                      0.0%   180  183.7 180.7 172.7 188.5   4.8
18. ae22.gw4.scz1.netarch.akamai.com                                          0.0%   180  193.6 193.4 180.9 246.6  11.6
19. (waiting for reply)
20. (waiting for reply)
21. (waiting for reply)
22. li726-41.members.linode.com                                               0.0%   180  176.2 181.2 173.5 189.4   4.9

mcuee@miniroute10g:~$ mtr -6 flent-fremont.bufferbloat.net
                                                 My traceroute  [v0.95]
miniroute10g (2400:d802:dd3:xxx:xxxx:4195:a5fc:5655) -> flent-fremont.bufferbloat.net (2600:3c2024-10-03T11:28:26+0800
Keys:  Help   Display mode   Restart statistics   Order of fields   quit
                                                                               Packets               Pings
 Host                                                                        Loss%   Snt   Last   Avg  Best  Wrst StDev
 1. 2400:d802:dd3:xxxx:xxxx:28ff:fe9d:63ae                                    0.0%   222    0.7   0.6   0.4   0.8   0.1
 2. 2400:d801:4001:611::                                                      0.0%   222    1.3   1.5   1.1  10.6   0.7
 3. 2001:c20:3c00::6                                                          1.4%   222    3.0   5.2   2.5  30.0   6.0
 4. 2001:c20:3c00::7                                                          0.0%   222    2.8   5.2   2.3  66.5   7.9
 5. 2001:c20:0:3::35                                                          0.0%   221    2.7   4.8   2.1  38.4   6.3
 6. 2001:c20:0:3::a                                                           0.0%   221    2.0   2.3   1.9   2.8   0.2
 7. 2001:c10:80:2::a21                                                        0.0%   221    2.3   3.5   2.2  36.2   4.0
 8. 2001:c10:80:2::915                                                        0.0%   221    3.3   4.4   2.4  45.0   5.3
 9. 2001:c10:80:1::b9a                                                        0.5%   221  186.2 179.9 171.9 207.2   5.6
10. (waiting for reply)
11. (waiting for reply)
12. (waiting for reply)
13. (waiting for reply)
14. (waiting for reply)
15. 2600:3c0f:3:32::4                                                         0.0%   221  188.2 183.7 175.4 194.4   4.6
16. 2600:3c0f:3:35::40                                                        0.0%   221  181.4 179.0 171.0 194.2   4.8
17. 2600:3c0f:3::1250                                                         0.0%   221  192.8 188.3 180.4 196.2   4.8
18. 2600:3c01::f03c:91ff:fe50:48d4                                            0.0%   221  185.4 178.4 170.9 188.8   4.9

@dtaht
Copy link
Author

dtaht commented Oct 3, 2024

I filled a bug with linode

@dtaht
Copy link
Author

dtaht commented Oct 3, 2024

and it was an incorrect DNS record, my bad! 2600:3c15::f03c:95ff:fe7e:75a2 it is now! try again in 15 minutes or so

@mcuee
Copy link

mcuee commented Oct 3, 2024

IPv4 wired test first using my Intel N100 mini PC with Ubuntu 24.04 Linux. Very fast server. Nice.

Somehow Linux chooses to use IPv4 and not IPv6 by default.

mcuee@miniroute10g:~/build/networking/crusader_bin/v0.3.1$ ./crusader test --load-duration 60 --streams 8 --stream-stagger 4 singapore.starlink.taht.net
[2024-10-03 12:48:51] Client version 0.3.1 running
[2024-10-03 12:48:51] Connected to server 172.236.148.60:35481
[2024-10-03 12:48:53] Idle latency to server 2.73 ms
[2024-10-03 12:48:55] Testing download...
[2024-10-03 12:50:25] Testing upload...
[2024-10-03 12:51:55] Testing both download and upload...
[2024-10-03 12:53:33] Warning: Load termination timed out. There may be residual untracked traffic in the background.

-- Download test --
          Throughput: 3927.62 Mbps
             Latency: 2.4 ms (0.8 ms down, 1.7 ms up)
         Packet loss: 0%

-- Upload test --
          Throughput: 4935.37 Mbps
             Latency: 9.9 ms (0.9 ms down, 9.0 ms up)
         Packet loss: 0%

-- Bidirectional test --
          Throughput: 8427.17 Mbps (3579.31 Mbps down, 4847.85 Mbps up)
             Latency: 9.7 ms (1.0 ms down, 8.7 ms up)
         Packet loss: 0% down, 0.02% up

[2024-10-03 12:53:33] Writing data...
[2024-10-03 12:53:33] Saved raw data as crusader-results/crusader-results/test 2024-10-03 12.53.33.crr
[2024-10-03 12:53:33] Saved plot as crusader-results/test 2024-10-03 12.53.33.png

test 2024-10-03 12 53 33

@mcuee
Copy link

mcuee commented Oct 3, 2024

IPv6 wired test -- the server is still good. Nice.

mcuee@miniroute10g:~/build/networking/crusader_bin/v0.3.1$ ./crusader test --load-duration 60 --streams 8 --stream-stagger 4 2600:3c15::f03c:95ff:fe7e:75a2
[2024-10-03 12:57:07] Client version 0.3.1 running
[2024-10-03 12:57:07] Connected to server [2600:3c15::f03c:95ff:fe7e:75a2]:35481
[2024-10-03 12:57:09] Idle latency to server 2.82 ms
[2024-10-03 12:57:11] Testing download...
[2024-10-03 12:58:46] Testing upload...
[2024-10-03 13:00:16] Testing both download and upload...
[2024-10-03 13:01:50] Warning: Load termination timed out. There may be residual untracked traffic in the background.

-- Download test --
          Throughput: 4057.47 Mbps
             Latency: 2.8 ms (1.0 ms down, 1.8 ms up)
         Packet loss: 0%

-- Upload test --
          Throughput: 4873.10 Mbps
             Latency: 10.3 ms (0.1 ms down, 10.2 ms up)
         Packet loss: 0%

-- Bidirectional test --
          Throughput: 8280.88 Mbps (3577.16 Mbps down, 4703.72 Mbps up)
             Latency: 10.2 ms (0.6 ms down, 9.6 ms up)
         Packet loss: 0%

[2024-10-03 13:01:50] Writing data...
[2024-10-03 13:01:50] Saved raw data as crusader-results/crusader-results/test 2024-10-03 13.01.50.crr
[2024-10-03 13:01:51] Saved plot as crusader-results/test 2024-10-03 13.01.50.png

test 2024-10-03 13 01 50

@mcuee
Copy link

mcuee commented Oct 3, 2024

and it was an incorrect DNS record, my bad! 2600:3c15::f03c:95ff:fe7e:75a2 it is now! try again in 15 minutes or so

Guess the DNS record for IPv6 may need some time to update.

mcuee@miniroute10g:~$ ping -4 -c 6 singapore.starlink.taht.net
PING singapore.starlink.taht.net (172.236.148.60) 56(84) bytes of data.
64 bytes from 172-236-148-60.ip.linodeusercontent.com (172.236.148.60): icmp_seq=1 ttl=47 time=2.62 ms
64 bytes from 172-236-148-60.ip.linodeusercontent.com (172.236.148.60): icmp_seq=2 ttl=47 time=2.54 ms
64 bytes from 172-236-148-60.ip.linodeusercontent.com (172.236.148.60): icmp_seq=3 ttl=47 time=2.71 ms
64 bytes from 172-236-148-60.ip.linodeusercontent.com (172.236.148.60): icmp_seq=4 ttl=47 time=2.53 ms
64 bytes from 172-236-148-60.ip.linodeusercontent.com (172.236.148.60): icmp_seq=5 ttl=47 time=2.86 ms
64 bytes from 172-236-148-60.ip.linodeusercontent.com (172.236.148.60): icmp_seq=6 ttl=47 time=2.85 ms

--- singapore.starlink.taht.net ping statistics ---
6 packets transmitted, 6 received, 0% packet loss, time 5006ms
rtt min/avg/max/mdev = 2.528/2.687/2.862/0.134 ms

mcuee@miniroute10g:~$ ping -6 -c 6 singapore.starlink.taht.net
PING singapore.starlink.taht.net (2a01:7e00::f03c:93ff:fe26:188a) 56 data bytes
64 bytes from 2a01:7e00::f03c:93ff:fe26:188a: icmp_seq=1 ttl=44 time=306 ms
64 bytes from 2a01:7e00::f03c:93ff:fe26:188a: icmp_seq=2 ttl=44 time=306 ms
64 bytes from 2a01:7e00::f03c:93ff:fe26:188a: icmp_seq=3 ttl=44 time=307 ms
64 bytes from 2a01:7e00::f03c:93ff:fe26:188a: icmp_seq=4 ttl=44 time=309 ms
64 bytes from 2a01:7e00::f03c:93ff:fe26:188a: icmp_seq=5 ttl=44 time=305 ms
64 bytes from 2a01:7e00::f03c:93ff:fe26:188a: icmp_seq=6 ttl=44 time=306 ms

--- singapore.starlink.taht.net ping statistics ---
6 packets transmitted, 6 received, 0% packet loss, time 8885ms
rtt min/avg/max/mdev = 305.069/306.496/309.072/1.287 ms

mcuee@miniroute10g:~$ ping -6 -c 6 2600:3c15::f03c:95ff:fe7e:75a2
PING 2600:3c15::f03c:95ff:fe7e:75a2 (2600:3c15::f03c:95ff:fe7e:75a2) 56 data bytes
64 bytes from 2600:3c15::f03c:95ff:fe7e:75a2: icmp_seq=1 ttl=46 time=2.87 ms
64 bytes from 2600:3c15::f03c:95ff:fe7e:75a2: icmp_seq=2 ttl=46 time=3.22 ms
64 bytes from 2600:3c15::f03c:95ff:fe7e:75a2: icmp_seq=3 ttl=46 time=3.07 ms
64 bytes from 2600:3c15::f03c:95ff:fe7e:75a2: icmp_seq=4 ttl=46 time=3.08 ms
64 bytes from 2600:3c15::f03c:95ff:fe7e:75a2: icmp_seq=5 ttl=46 time=3.05 ms
64 bytes from 2600:3c15::f03c:95ff:fe7e:75a2: icmp_seq=6 ttl=46 time=2.96 ms

--- 2600:3c15::f03c:95ff:fe7e:75a2 ping statistics ---
6 packets transmitted, 6 received, 0% packet loss, time 5007ms
rtt min/avg/max/mdev = 2.874/3.040/3.217/0.106 ms

@dtaht
Copy link
Author

dtaht commented Oct 3, 2024

It makes me grumpy to see 8ms of latency at 4gbit. can you slap

tc qdisc add dev <your_device> root cake bandwidth 3800mbit

on your Linux box and try again?

@mcuee
Copy link

mcuee commented Oct 3, 2024

Here you go.

mcuee@miniroute10g:~$ sudo tc qdisc add dev enp1s0f0 root cake bandwidth 3800mbit
[sudo] password for mcuee:
mcuee@miniroute10g:~$ cd build/networking/crusader_bin/v0.3.1/

mcuee@miniroute10g:~/build/networking/crusader_bin/v0.3.1$ ping -6 -c 6 2600:3c15::f03c:95ff:fe7e:75a2
PING 2600:3c15::f03c:95ff:fe7e:75a2 (2600:3c15::f03c:95ff:fe7e:75a2) 56 data bytes
64 bytes from 2600:3c15::f03c:95ff:fe7e:75a2: icmp_seq=1 ttl=46 time=2.62 ms
64 bytes from 2600:3c15::f03c:95ff:fe7e:75a2: icmp_seq=2 ttl=46 time=2.87 ms
64 bytes from 2600:3c15::f03c:95ff:fe7e:75a2: icmp_seq=3 ttl=46 time=3.13 ms
64 bytes from 2600:3c15::f03c:95ff:fe7e:75a2: icmp_seq=4 ttl=46 time=3.12 ms
64 bytes from 2600:3c15::f03c:95ff:fe7e:75a2: icmp_seq=5 ttl=46 time=3.12 ms
64 bytes from 2600:3c15::f03c:95ff:fe7e:75a2: icmp_seq=6 ttl=46 time=2.99 ms

--- 2600:3c15::f03c:95ff:fe7e:75a2 ping statistics ---
6 packets transmitted, 6 received, 0% packet loss, time 5008ms
rtt min/avg/max/mdev = 2.621/2.975/3.126/0.183 ms

mcuee@miniroute10g:~/build/networking/crusader_bin/v0.3.1$ ./crusader test --load-duration 60 --streams 8 --stream-stagger 4 2600:3c15::f03c:95ff:fe7e:75a2
[2024-10-03 21:48:40] Client version 0.3.1 running
[2024-10-03 21:48:40] Connected to server [2600:3c15::f03c:95ff:fe7e:75a2]:35481
[2024-10-03 21:48:41] Idle latency to server 3.29 ms
[2024-10-03 21:48:44] Testing download...
[2024-10-03 21:50:19] Testing upload...
[2024-10-03 21:51:49] Testing both download and upload...
[2024-10-03 21:53:26] Warning: Load termination timed out. There may be residual untracked traffic in the background.

-- Download test --
          Throughput: 4062.70 Mbps
             Latency: 3.1 ms (1.6 ms down, 1.4 ms up)
         Packet loss: 0%

-- Upload test --
          Throughput: 3583.67 Mbps
             Latency: 3.3 ms (1.8 ms down, 1.4 ms up)
         Packet loss: 0%

-- Bidirectional test --
          Throughput: 7284.52 Mbps (3741.73 Mbps down, 3542.78 Mbps up)
             Latency: 11.4 ms (1.8 ms down, 9.6 ms up)
         Packet loss: 0%

[2024-10-03 21:53:26] Writing data...
[2024-10-03 21:53:26] Saved raw data as crusader-results/crusader-results/test 2024-10-03 21.53.26.crr
[2024-10-03 21:53:26] Saved plot as crusader-results/test 2024-10-03 21.53.26.png

test 2024-10-03 21 53 26

@mcuee
Copy link

mcuee commented Oct 3, 2024

But I am not exactly sure if the tc rules work well or not. Ir seems to only limit the upload bandwith. BTW, the CPU used in the mini PC running Ubuntu 24.04 is the low powrer Intel N100 CPU.

Edit: this is expected as tc only limits upload bandwidth (egress bandwidth).
https://www.baeldung.com/linux/throttle-bandwidth

mcuee@miniroute10g:~/build/networking/ookla$ sudo tc qdisc show dev enp1s0f0
qdisc cake 8001: root refcnt 65 bandwidth 3800Mbit diffserv3 triple-isolate nonat nowash no-ack-filter split-gso rtt 100ms raw overhead 0

mcuee@miniroute10g:~/build/networking/ookla$ ./speedtest -s 13623

   Speedtest by Ookla

      Server: Singtel - Singapore (id: 13623)
         ISP: Singtel Fibre
Idle Latency:     2.27 ms   (jitter: 0.42ms, low: 1.88ms, high: 2.70ms)
    Download:  5650.21 Mbps (data used: 7.4 GB)
                  1.61 ms   (jitter: 2.56ms, low: 1.13ms, high: 205.39ms)
      Upload:  3665.98 Mbps (data used: 4.6 GB)
                  1.32 ms   (jitter: 0.52ms, low: 1.01ms, high: 16.04ms)
 Packet Loss:     0.0%
  Result URL: https://www.speedtest.net/result/c/d9e3b1f8-525c-4d2c-b558-dfb314b9a9a5

@mcuee
Copy link

mcuee commented Oct 3, 2024

Just to make sure the tc rule is working.

mcuee@miniroute10g:~/build/networking/ookla$ sudo tc qdisc add dev enp1s0f0 root cake bandwidth 3800mbit
mcuee@miniroute10g:~/build/networking/ookla$ ./speedtest -s 13623

   Speedtest by Ookla

      Server: Singtel - Singapore (id: 13623)
         ISP: Singtel Fibre
Idle Latency:     1.42 ms   (jitter: 0.24ms, low: 1.31ms, high: 1.71ms)
    Download:  5629.54 Mbps (data used: 7.1 GB)
                  1.34 ms   (jitter: 2.42ms, low: 1.04ms, high: 208.14ms)
      Upload:  3665.05 Mbps (data used: 3.8 GB)
                  1.37 ms   (jitter: 0.31ms, low: 1.03ms, high: 5.01ms)
 Packet Loss:     0.0%
  Result URL: https://www.speedtest.net/result/c/142db2e7-2cc2-4d79-9cbd-439d8c11b38c
mcuee@miniroute10g:~/build/networking/ookla$ sudo tc qdisc show dev enp1s0f0
qdisc cake 8001: root refcnt 65 bandwidth 3800Mbit diffserv3 triple-isolate nonat nowash no-ack-filter split-gso rtt 100ms raw overhead 0
mcuee@miniroute10g:~/build/networking/ookla$ sudo tc qdisc del dev enp1s0f0 root
mcuee@miniroute10g:~/build/networking/ookla$ sudo tc qdisc show dev enp1s0f0
qdisc mq 0: root
qdisc fq_codel 0: parent :4 limit 10240p flows 1024 quantum 1514 target 5ms interval 100ms memory_limit 32Mb ecn drop_batch 64
qdisc fq_codel 0: parent :3 limit 10240p flows 1024 quantum 1514 target 5ms interval 100ms memory_limit 32Mb ecn drop_batch 64
qdisc fq_codel 0: parent :2 limit 10240p flows 1024 quantum 1514 target 5ms interval 100ms memory_limit 32Mb ecn drop_batch 64
qdisc fq_codel 0: parent :1 limit 10240p flows 1024 quantum 1514 target 5ms interval 100ms memory_limit 32Mb ecn drop_batch 64
mcuee@miniroute10g:~/build/networking/ookla$ ./speedtest -s 13623

   Speedtest by Ookla

      Server: Singtel - Singapore (id: 13623)
         ISP: Singtel Fibre
Idle Latency:     1.49 ms   (jitter: 0.06ms, low: 1.40ms, high: 1.52ms)
    Download:  5653.15 Mbps (data used: 7.2 GB)
                  1.32 ms   (jitter: 0.46ms, low: 1.03ms, high: 7.46ms)
      Upload:  4983.81 Mbps (data used: 5.0 GB)
                  5.83 ms   (jitter: 0.55ms, low: 1.76ms, high: 7.40ms)
 Packet Loss:     0.0%
  Result URL: https://www.speedtest.net/result/c/2023e8f9-bc5f-47f3-b0cb-df844cf6f2eb

@mcuee
Copy link

mcuee commented Oct 3, 2024

Using wondershaper.
https://github.com/magnific0/wondershaper

mcuee@miniroute10g:~/build/networking/bufferbloat/wondershaper$ sudo ./wondershaper -a enp1s0f0 -u 3600000 -d 3600000
Warning: sch_htb: quantum of class 10001 is big. Consider r2q change.
Warning: sch_htb: quantum of class 10010 is big. Consider r2q change.
Warning: sch_htb: quantum of class 10020 is big. Consider r2q change.
Warning: sch_htb: quantum of class 10030 is big. Consider r2q change.
Warning: sch_htb: quantum of class 20001 is big. Consider r2q change.

mcuee@miniroute10g:~/build/networking/bufferbloat/wondershaper$ cd ..

mcuee@miniroute10g:~/build/networking/bufferbloat$ cd ../ookla

mcuee@miniroute10g:~/build/networking/ookla$ ./speedtest -s 13623

   Speedtest by Ookla

      Server: Singtel - Singapore (id: 13623)
         ISP: Singtel Fibre
Idle Latency:     1.41 ms   (jitter: 0.09ms, low: 1.34ms, high: 1.55ms)
    Download:  3174.58 Mbps (data used: 3.5 GB)
                 12.33 ms   (jitter: 31.67ms, low: 1.00ms, high: 225.86ms)
      Upload:  3241.43 Mbps (data used: 4.0 GB)
                  1.60 ms   (jitter: 0.38ms, low: 1.15ms, high: 12.31ms)
 Packet Loss:     0.0%
  Result URL: https://www.speedtest.net/result/c/42553f06-3923-4197-904a-a2bbbaf34902

mcuee@miniroute10g:~/build/networking/ookla$ cd ../crusader_bin/v0.3.1/

mcuee@miniroute10g:~/build/networking/crusader_bin/v0.3.1$ ./crusader test --load-duration 60 --streams 8 --stream-stagger 4 2600:3c15::f03c:95ff:fe7e:75a2
[2024-10-03 22:47:37] Client version 0.3.1 running
[2024-10-03 22:47:37] Connected to server [2600:3c15::f03c:95ff:fe7e:75a2]:35481
[2024-10-03 22:47:39] Idle latency to server 3.43 ms
[2024-10-03 22:47:41] Testing download...
[2024-10-03 22:49:11] Testing upload...
[2024-10-03 22:50:41] Testing both download and upload...
[2024-10-03 22:52:15] Warning: Load termination timed out. There may be residual untracked traffic in the background.

-- Download test --
          Throughput: 3788.78 Mbps
             Latency: 2.8 ms (1.1 ms down, 1.7 ms up)
         Packet loss: 0%

-- Upload test --
          Throughput: 3160.20 Mbps
             Latency: 3.3 ms (0.4 ms down, 2.9 ms up)
         Packet loss: 0%

-- Bidirectional test --
          Throughput: 7127.03 Mbps (4053.73 Mbps down, 3073.29 Mbps up)
             Latency: 3.3 ms (0.7 ms down, 2.6 ms up)
         Packet loss: 0%

[2024-10-03 22:52:15] Writing data...
[2024-10-03 22:52:15] Saved raw data as crusader-results/crusader-results/test 2024-10-03 22.52.15.crr
[2024-10-03 22:52:15] Saved plot as crusader-results/test 2024-10-03 22.52.15.png

test 2024-10-03 22 52 15

@dtaht
Copy link
Author

dtaht commented Oct 3, 2024

if you want to shape inbound w/cake try the sqm-scripts.

Perversely nice to see wonder shaper struggling. the more frequent latency spikes are probably tail loss.

tc -s qdisc show will give you stats

@dtaht
Copy link
Author

dtaht commented Oct 3, 2024

I just enabled ECN on Singapore.

sysctl -w net.ipv4.tcp_ecn=1

on your machine and w/cake try crusader. All the latency spikes should vanish.

@moeller0
Copy link

moeller0 commented Oct 3, 2024

Question: I thought crusader uses UDP, does it really evaluate ECN at all?

@richb-hanover
Copy link
Contributor

I just clarified the README in this PR for 0.3 documentation a1e38cc

Yes - the throughput measurements use TCP

@moeller0
Copy link

moeller0 commented Oct 3, 2024

Hi Rich, Thanks for clearing this up! (One reason less though to take a packet capture from a crusader run though...)

@mcuee
Copy link

mcuee commented Oct 4, 2024

@dtaht

DNS record for IPv6 is now correct.

mcuee@miniroute10g:~/build/networking/crusader_bin/v0.3.1$ ping -4 -c 4 singapore.starlink.taht.net
PING singapore.starlink.taht.net (172.236.148.60) 56(84) bytes of data.
64 bytes from 172-236-148-60.ip.linodeusercontent.com (172.236.148.60): icmp_seq=1 ttl=47 time=2.90 ms
64 bytes from 172-236-148-60.ip.linodeusercontent.com (172.236.148.60): icmp_seq=2 ttl=47 time=2.94 ms
64 bytes from 172-236-148-60.ip.linodeusercontent.com (172.236.148.60): icmp_seq=3 ttl=47 time=2.67 ms
64 bytes from 172-236-148-60.ip.linodeusercontent.com (172.236.148.60): icmp_seq=4 ttl=47 time=3.35 ms

--- singapore.starlink.taht.net ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3005ms
rtt min/avg/max/mdev = 2.667/2.962/3.348/0.245 ms

mcuee@miniroute10g:~/build/networking/crusader_bin/v0.3.1$ ping -6 -c 4 singapore.starlink.taht.net
PING singapore.starlink.taht.net (2600:3c15::f03c:95ff:fe7e:75a2) 56 data bytes
64 bytes from 2600:3c15::f03c:95ff:fe7e:75a2: icmp_seq=1 ttl=46 time=3.75 ms
64 bytes from 2600:3c15::f03c:95ff:fe7e:75a2: icmp_seq=2 ttl=46 time=3.58 ms
64 bytes from 2600:3c15::f03c:95ff:fe7e:75a2: icmp_seq=3 ttl=46 time=3.71 ms
64 bytes from 2600:3c15::f03c:95ff:fe7e:75a2: icmp_seq=4 ttl=46 time=3.55 ms

--- singapore.starlink.taht.net ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3295ms
rtt min/avg/max/mdev = 3.548/3.646/3.749/0.083 ms

@mcuee
Copy link

mcuee commented Oct 4, 2024

I just enabled ECN on Singapore.

sysctl -w net.ipv4.tcp_ecn=1

on your machine and w/cake try crusader. All the latency spikes should vanish.

@dtaht
Thanks for the help.

IPv4 test result

mcuee@miniroute10g:~/build/networking/crusader_bin/v0.3.1$ sudo sysctl -w net.ipv4.tcp_ecn=1
net.ipv4.tcp_ecn = 1

mcuee@miniroute10g:~/build/networking/crusader_bin/v0.3.1$ sudo tc qdisc show dev enp1s0f0
qdisc mq 0: root
qdisc fq_codel 0: parent :4 limit 10240p flows 1024 quantum 1514 target 5ms interval 100ms memory_limit 32Mb ecn drop_batch 64
qdisc fq_codel 0: parent :3 limit 10240p flows 1024 quantum 1514 target 5ms interval 100ms memory_limit 32Mb ecn drop_batch 64
qdisc fq_codel 0: parent :2 limit 10240p flows 1024 quantum 1514 target 5ms interval 100ms memory_limit 32Mb ecn drop_batch 64
qdisc fq_codel 0: parent :1 limit 10240p flows 1024 quantum 1514 target 5ms interval 100ms memory_limit 32Mb ecn drop_batch 64

mcuee@miniroute10g:~/build/networking/crusader_bin/v0.3.1$ sudo tc qdisc add dev enp1s0f0 root cake bandwidth 3800mbit

mcuee@miniroute10g:~/build/networking/crusader_bin/v0.3.1$ sudo tc qdisc show dev enp1s0f0
qdisc cake 8001: root refcnt 65 bandwidth 3800Mbit diffserv3 triple-isolate nonat nowash no-ack-filter split-gso rtt 100ms raw overhead 0

mcuee@miniroute10g:~/build/networking/crusader_bin/v0.3.1$ ./crusader test --load-duration 60 --streams 8 --stream-stagger 4 172.236.148.60
[2024-10-04 13:01:21] Client version 0.3.1 running
[2024-10-04 13:01:21] Connected to server 172.236.148.60:35481
[2024-10-04 13:01:22] Idle latency to server 2.40 ms
[2024-10-04 13:01:24] Testing download...
[2024-10-04 13:02:54] Testing upload...
[2024-10-04 13:04:30] Testing both download and upload...
[2024-10-04 13:06:04] Warning: Load termination timed out. There may be residual untracked traffic in the background.

-- Download test --
          Throughput: 4053.84 Mbps
             Latency: 2.6 ms (1.2 ms down, 1.4 ms up)
         Packet loss: 0%

-- Upload test --
          Throughput: 3634.53 Mbps
             Latency: 5.1 ms (1.9 ms down, 3.2 ms up)
         Packet loss: 0%

-- Bidirectional test --
          Throughput: 7483.76 Mbps (4028.80 Mbps down, 3454.96 Mbps up)
             Latency: 7.9 ms (1.4 ms down, 6.5 ms up)
         Packet loss: 0%

[2024-10-04 13:06:04] Writing data...
[2024-10-04 13:06:04] Saved raw data as crusader-results/crusader-results/test 2024-10-04 13.06.04.crr
[2024-10-04 13:06:04] Saved plot as crusader-results/test 2024-10-04 13.06.04.png

test 2024-10-04 13 06 04

IPv6 test result

mcuee@miniroute10g:~/build/networking/crusader_bin/v0.3.1$ ./crusader test --load-duration 60 --streams 8 --stream-stagger 4 singapore.starlink.taht.net
[2024-10-04 13:08:49] Client version 0.3.1 running
[2024-10-04 13:08:49] Connected to server [2600:3c15::f03c:95ff:fe7e:75a2]:35481
[2024-10-04 13:08:50] Idle latency to server 2.88 ms
[2024-10-04 13:08:52] Testing download...
[2024-10-04 13:10:24] Testing upload...
[2024-10-04 13:11:54] Testing both download and upload...
[2024-10-04 13:13:28] Warning: Load termination timed out. There may be residual untracked traffic in the background.

-- Download test --
          Throughput: 3979.06 Mbps
             Latency: 2.7 ms (1.3 ms down, 1.4 ms up)
         Packet loss: 0%

-- Upload test --
          Throughput: 3488.21 Mbps
             Latency: 4.2 ms (2.1 ms down, 2.1 ms up)
         Packet loss: 0%

-- Bidirectional test --
          Throughput: 7370.32 Mbps (3837.83 Mbps down, 3532.49 Mbps up)
             Latency: 10.9 ms (2.3 ms down, 8.6 ms up)
         Packet loss: 0%

[2024-10-04 13:13:28] Writing data...
[2024-10-04 13:13:28] Saved raw data as crusader-results/crusader-results/test 2024-10-04 13.13.28.crr
[2024-10-04 13:13:28] Saved plot as crusader-results/test 2024-10-04 13.13.28.png

test 2024-10-04 13 13 28

@mcuee
Copy link

mcuee commented Oct 4, 2024

BTW, I learned something new today.
https://www.kernel.org/doc/Documentation/networking/ip-sysctl.txt

/proc/sys/net/ipv6/* Variables:

IPv6 has no global variables such as tcp_*.  tcp_* settings under ipv4/ also
apply to IPv6 [XXX?].

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants