nixos/networkd: make default networks `RequiredForOnline` when possible

When `systemd.network.wait-online.anyInterface` is enabled,
`RequiredForOnline` really means "sufficient for online", so enable it.
main
Naïm Favier 2 years ago
parent e7f161a3e8
commit f8a83b4260
No known key found for this signature in database
GPG Key ID: 95AFCE8211908325
  1. 14
      nixos/modules/tasks/network-interfaces-systemd.nix

@ -88,20 +88,20 @@ in
# more likely to result in interfaces being configured to
# use DHCP when they shouldn't.
# We set RequiredForOnline to false, because it's fairly
# common for such devices to have multiple interfaces and
# only one of them to be connected (e.g. a laptop with
# ethernet and WiFi interfaces). Maybe one day networkd will
# support "any"-style RequiredForOnline...
# When wait-online.anyInterface is enabled, RequiredForOnline really
# means "sufficient for online", so we can enable it.
# Otherwise, don't block the network coming online because of default networks.
matchConfig.Name = ["en*" "eth*"];
DHCP = "yes";
linkConfig.RequiredForOnline = lib.mkDefault false;
linkConfig.RequiredForOnline =
lib.mkDefault config.systemd.network.wait-online.anyInterface;
};
networks."99-wireless-client-dhcp" = lib.mkIf cfg.useDHCP {
# Like above, but this is much more likely to be correct.
matchConfig.WLANInterfaceType = "station";
DHCP = "yes";
linkConfig.RequiredForOnline = lib.mkDefault false;
linkConfig.RequiredForOnline =
lib.mkDefault config.systemd.network.wait-online.anyInterface;
# We also set the route metric to one more than the default
# of 1024, so that Ethernet is preferred if both are
# available.

Loading…
Cancel
Save