You are not logged in.

#1 2025-07-29 22:14:12

superlex
Member
Registered: 2025-03-08
Posts: 13

High RTT with Iwd when pinging router

I am getting very high round-trip ping time to my router on two arch systems with Iwd.

# 192.168.0.1 is my router's LAN IP
lex@opti > ping -c 20 192.168.0.1  # arch system with pretty old hardware, iwd
rtt min/avg/max/mdev = 3.451/1329.259/4411.378/1267.569 ms, pipe 5  # no packet loss

lex@frame > ping -c 20 192.168.0.1  # much more modern hardware, arch system, iwd
rtt min/avg/max/mdev = 3.927/25.243/57.545/10.042 ms  # + no packet loss

lex@inspiron > ping -c 20 192.168.0.1  # Debian unstable system which has the worst hardware of the three. I think it's using wpa_supplicant
rtt min/avg/max/mdev = 1.477/3.542/11.311/2.473 ms

# This is the first system again, now using NetworkManager. I stopped iwd, pacman -S networkmanager + start it, nmtui'd and connected to my network, then pinged.
lex@opti > ping -c 20 192.168.0.1
rtt min/avg/max/mdev = 1.824/4.661/16.772/4.060 ms

TL;DR both of my Arch computers using Iwd are getting suspiciously high ping times to my router (1330 and 58 ms respectively). The 1330ms went to 4.6ms with completely stock NetworkManager swapped for Iwd. I like Iwd, so I'd like to learn what I must have done wrong in the config to get this abysmal ping time instead of switching to NM and shutting up about it. There are no other competing network managers running.

Both Iwd systems have this:

cat /etc/iwd/main.conf
[Network]
NameResolvingService=systemd  # this would not affect ping times

[General]
EnableNetworkConfiguration=true  # I don't know about this though

The 1330ms one also has a static IP:

cat /var/lib/iwd/MyNetworkName.psk
[IPv4]
Address=192.168.0.3
Netmask=255.255.255.0
Gateway=192.168.0.1
Broadcast=192.168.0.255
DNS=192.168.0.1

[Security]
...

Did I totally mess something up? I'm sure there are logs, but I don't know where the helpful ones would be, or if I can make it more verbose. I also don't know if I can profile it and see what's going on in that time. Maybe that's not needed.

Last edited by superlex (2025-07-30 00:05:31)

Offline

#2 2025-07-30 06:41:43

seth
Member
From: Won't reply 2 private help req
Registered: 2012-09-03
Posts: 75,182

Re: High RTT with Iwd when pinging router

system journal
1. crashes, https://wiki.archlinux.org/title/Iwd#Wi … _iwd_crash
2. roaming, https://wiki.archlinux.org/title/Iwd#iwd_keeps_roaming
3. generally iwd connecting to a different AP (2.4GHz ./. 5GHz on same SSID)?

Offline

#3 2025-08-02 01:08:18

superlex
Member
Registered: 2025-03-08
Posts: 13

Re: High RTT with Iwd when pinging router

I'm really sorry for my abysmally late reply. Thank you for your help.
1. Iwd has not crashed on me ever
2. I have gotten the kernel message saying that Iwd is switching networks, but it is very infrequent and the issue persists to now even without the message showing up in journal at all within the past 24 hours, leading me to believe that's not it.
3. Yes, I have 2.4GHz and 5GHz on the same SSID. Is this not implemented with Iwd, or does it not handle this well? Is it possible / best for me to select just one, say 5GHz?

Last edited by superlex (2025-08-02 01:10:03)

Offline

#4 2025-08-02 06:27:39

seth
Member
From: Won't reply 2 private help req
Registered: 2012-09-03
Posts: 75,182

Re: High RTT with Iwd when pinging router

(3) can easily lead to (2) - you can connect to the BSSID (AP MAC address) to enforce a connection (there's gonna be some Lagrange point area where the "better" status constantly swaps due to random interference)
So what /does/ the system journal log when your pinging on high RTT?

Since you've

EnableNetworkConfiguration=true

, do you also run some network service like dhcpcd?
Please post the output of

find /etc/systemd -type l -exec test -f {} \; -print | awk -F'/' '{ printf ("%-40s | %s\n", $(NF-0), $(NF-1)) }' | sort -f

Offline

#5 2025-08-03 04:31:55

superlex
Member
Registered: 2025-03-08
Posts: 13

Re: High RTT with Iwd when pinging router

> find /etc/systemd -type l -exec test -f {} \; -print | awk -F'/' '{ printf ("%-40s | %s\n", $(NF-0), $(NF-1)) }' | sort -f
cups.path                                | multi-user.target.wants
cups.service                             | multi-user.target.wants
cups.service                             | printer.target.wants
cups.socket                              | sockets.target.wants
dbus-org.freedesktop.resolve1.service    | system
dbus-org.freedesktop.timesync1.service   | system
display-manager.service                  | system
fstrim.timer                             | timers.target.wants
getty@tty1.service                       | getty.target.wants
gnome-keyring-daemon.socket              | sockets.target.wants
iwd.service                              | multi-user.target.wants
nvidia-hibernate.service                 | systemd-hibernate.service.wants
nvidia-resume.service                    | systemd-hibernate.service.wants
nvidia-resume.service                    | systemd-suspend.service.wants
nvidia-resume.service                    | systemd-suspend-then-hibernate.service.wants
nvidia-suspend.service                   | systemd-suspend.service.wants
p11-kit-server.socket                    | sockets.target.wants
pipewire-pulse.socket                    | sockets.target.wants
pipewire-session-manager.service         | user
pipewire.socket                          | sockets.target.wants
reflector.timer                          | timers.target.wants
remote-fs.target                         | multi-user.target.wants
sshd.service                             | multi-user.target.wants
systemd-resolved.service                 | sysinit.target.wants
systemd-timesyncd.service                | sysinit.target.wants
systemd-userdbd.socket                   | sockets.target.wants
wireplumber.service                      | pipewire.service.wants
xdg-user-dirs-update.service             | default.target.wants

Otherwise:
I looked through `journalctl -u iwd`, which was not particularly helpful. It connects to the 5G BSSID almost all the time and doesn't usually switch when it picks one. It's sometimes better and sometimes worse, and when it goes from better -> worse or the other way around there's silence in the iwd journal. It prints my whole router details to journal, logs that it changes its state to connected, sends out event: roam-scan infrequently (0 or 1 an hour), and Terminates when I shut down the computer. (I'm somewhat hesitant to post the journal in full since I don't know what information about my router iwd logs that is private)
I put `[Rank] BandModifier5Ghz=10.0` in my `iwd/main.conf` to make the 5GHz band more desirable but it seems (and is) not effective at resolving the high ping times since iwd is not switching back and forth between 2.4 and 5GHz

Offline

#6 2025-08-03 07:41:29

seth
Member
From: Won't reply 2 private help req
Registered: 2012-09-03
Posts: 75,182

Re: High RTT with Iwd when pinging router

seth wrote:

do you also run some network service like dhcpcd?

"no"

Have you tried enforcing 2.4GHz (or checked which BSSID debian is actually connecting to)?

Offline

#7 2025-08-08 22:33:10

superlex
Member
Registered: 2025-03-08
Posts: 13

Re: High RTT with Iwd when pinging router

I'm not able to reproduce the high ping times anymore. I'm not sure when it got "fixed", or if it's "fixed" at all.
I seemed to not get any issues using NetworkManager, so if it ever comes back I'll probably just switch. I think this thread is somewhat on-hold for now until I can reproduce the issue again and care enough to seek out a fix.
Many thanks for helping, though.

Offline

Board footer

Powered by FluxBB