Send patches - preferably formatted by git format-patch - to patches at archlinux32 dot org.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Runge <dvzrv@archlinux.org>2021-07-29 11:52:35 +0200
committerDavid Runge <dvzrv@archlinux.org>2021-07-29 11:52:35 +0200
commit1cec901af206df3cc1e462e94ffb4feebc4ea197 (patch)
tree17112f0c2366cf9b3082e068f6d9aa1f11e1789a
parentc88fe823b670663cd3c5ee1d33c3f921822e2887 (diff)
parent8fa110e9d71efef57a4d843e54bdff2fe3085e26 (diff)
Merge remote-tracking branch 'nl6720/RouteMetric'
* nl6720/RouteMetric: configs/*/airootfs/etc/systemd/system/systemd-networkd-wait-online.service.d/wait-for-only-one-interface.conf: document why the drop-in file exists configs/releng/airootfs/etc/systemd/network/: move RouteMetric= from [DHCPv6] to [IPv6AcceptRA]
-rw-r--r--configs/baseline/airootfs/etc/systemd/network/20-ethernet.network3
-rw-r--r--configs/baseline/airootfs/etc/systemd/system/systemd-networkd-wait-online.service.d/wait-for-only-one-interface.conf4
-rw-r--r--configs/releng/airootfs/etc/systemd/network/20-ethernet.network11
-rw-r--r--configs/releng/airootfs/etc/systemd/network/20-wlan.network11
-rw-r--r--configs/releng/airootfs/etc/systemd/network/20-wwan.network11
-rw-r--r--configs/releng/airootfs/etc/systemd/system/systemd-networkd-wait-online.service.d/wait-for-only-one-interface.conf3
6 files changed, 31 insertions, 12 deletions
diff --git a/configs/baseline/airootfs/etc/systemd/network/20-ethernet.network b/configs/baseline/airootfs/etc/systemd/network/20-ethernet.network
index efa309c..9157e96 100644
--- a/configs/baseline/airootfs/etc/systemd/network/20-ethernet.network
+++ b/configs/baseline/airootfs/etc/systemd/network/20-ethernet.network
@@ -8,6 +8,3 @@ Name=eth*
[Network]
DHCP=yes
IPv6PrivacyExtensions=yes
-
-[DHCP]
-RouteMetric=512
diff --git a/configs/baseline/airootfs/etc/systemd/system/systemd-networkd-wait-online.service.d/wait-for-only-one-interface.conf b/configs/baseline/airootfs/etc/systemd/system/systemd-networkd-wait-online.service.d/wait-for-only-one-interface.conf
index a4d7442..191db81 100644
--- a/configs/baseline/airootfs/etc/systemd/system/systemd-networkd-wait-online.service.d/wait-for-only-one-interface.conf
+++ b/configs/baseline/airootfs/etc/systemd/system/systemd-networkd-wait-online.service.d/wait-for-only-one-interface.conf
@@ -1,5 +1,9 @@
#
# SPDX-License-Identifier: GPL-3.0-or-later
+# Allow systemd-networkd-wait-online to succeed with one interface, otherwise, if multiple network interfaces exist,
+# network-online.target gets needlessly delayed.
+# See https://wiki.archlinux.org/title/systemd-networkd#systemd-networkd-wait-online
[Service]
+ExecStart=
ExecStart=/usr/lib/systemd/systemd-networkd-wait-online --any
diff --git a/configs/releng/airootfs/etc/systemd/network/20-ethernet.network b/configs/releng/airootfs/etc/systemd/network/20-ethernet.network
index 142c591..88662a4 100644
--- a/configs/releng/airootfs/etc/systemd/network/20-ethernet.network
+++ b/configs/releng/airootfs/etc/systemd/network/20-ethernet.network
@@ -9,8 +9,13 @@ Name=eth*
DHCP=yes
IPv6PrivacyExtensions=yes
+# systemd-networkd does not set per-interface-type default route metrics
+# https://github.com/systemd/systemd/issues/17698
+# Explicitly set route metric, so that Ethernet is preferred over Wi-Fi and Wi-Fi is preferred over mobile broadband.
+# Use values from NetworkManager. From nm_device_get_route_metric_default in
+# https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/blob/main/src/core/devices/nm-device.c
[DHCPv4]
-RouteMetric=512
+RouteMetric=100
-[DHCPv6]
-RouteMetric=512
+[IPv6AcceptRA]
+RouteMetric=100
diff --git a/configs/releng/airootfs/etc/systemd/network/20-wlan.network b/configs/releng/airootfs/etc/systemd/network/20-wlan.network
index c164666..6bbd7ed 100644
--- a/configs/releng/airootfs/etc/systemd/network/20-wlan.network
+++ b/configs/releng/airootfs/etc/systemd/network/20-wlan.network
@@ -8,8 +8,13 @@ Name=wl*
DHCP=yes
IPv6PrivacyExtensions=yes
+# systemd-networkd does not set per-interface-type default route metrics
+# https://github.com/systemd/systemd/issues/17698
+# Explicitly set route metric, so that Ethernet is preferred over Wi-Fi and Wi-Fi is preferred over mobile broadband.
+# Use values from NetworkManager. From nm_device_get_route_metric_default in
+# https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/blob/main/src/core/devices/nm-device.c
[DHCPv4]
-RouteMetric=1024
+RouteMetric=600
-[DHCPv6]
-RouteMetric=1024
+[IPv6AcceptRA]
+RouteMetric=600
diff --git a/configs/releng/airootfs/etc/systemd/network/20-wwan.network b/configs/releng/airootfs/etc/systemd/network/20-wwan.network
index 7fba35b..d57cb0f 100644
--- a/configs/releng/airootfs/etc/systemd/network/20-wwan.network
+++ b/configs/releng/airootfs/etc/systemd/network/20-wwan.network
@@ -8,8 +8,13 @@ Name=ww*
DHCP=yes
IPv6PrivacyExtensions=yes
+# systemd-networkd does not set per-interface-type default route metrics
+# https://github.com/systemd/systemd/issues/17698
+# Explicitly set route metric, so that Ethernet is preferred over Wi-Fi and Wi-Fi is preferred over mobile broadband.
+# Use values from NetworkManager. From nm_device_get_route_metric_default in
+# https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/blob/main/src/core/devices/nm-device.c
[DHCPv4]
-RouteMetric=2048
+RouteMetric=700
-[DHCPv6]
-RouteMetric=2048
+[IPv6AcceptRA]
+RouteMetric=700
diff --git a/configs/releng/airootfs/etc/systemd/system/systemd-networkd-wait-online.service.d/wait-for-only-one-interface.conf b/configs/releng/airootfs/etc/systemd/system/systemd-networkd-wait-online.service.d/wait-for-only-one-interface.conf
index 1b4c091..191db81 100644
--- a/configs/releng/airootfs/etc/systemd/system/systemd-networkd-wait-online.service.d/wait-for-only-one-interface.conf
+++ b/configs/releng/airootfs/etc/systemd/system/systemd-networkd-wait-online.service.d/wait-for-only-one-interface.conf
@@ -1,6 +1,9 @@
#
# SPDX-License-Identifier: GPL-3.0-or-later
+# Allow systemd-networkd-wait-online to succeed with one interface, otherwise, if multiple network interfaces exist,
+# network-online.target gets needlessly delayed.
+# See https://wiki.archlinux.org/title/systemd-networkd#systemd-networkd-wait-online
[Service]
ExecStart=
ExecStart=/usr/lib/systemd/systemd-networkd-wait-online --any