On my laptop with an Arch Linux installation, I use iwd and systemd-networkd for networking.

I had this problem that when my laptop booted up, no networking was available. It turned out that iwd was started before the interface `wlp2s0` was ready and never detected it afterwards. Restarting iwd every time was annoying so I went to look for a solution.

I found one here.

I added two lines in a systemd override file (`systemctl edit iwd`):

/etc/systemd/system/iwd.service.d/override.conf

[Unit]
BindsTo=sys-subsystem-net-devices-wlp2s0.device
After=sys-subsystem-net-devices-wlp2s0.device

After this changes, networking is available on boot.