All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2] build: add After=network-pre.target to service files
@ 2021-01-22 14:41 Alvin =?unknown-8bit?q?=C5=A0ipraga?=
  2021-01-22 20:18 ` Denis Kenzior
  0 siblings, 1 reply; 2+ messages in thread
From: Alvin =?unknown-8bit?q?=C5=A0ipraga?= @ 2021-01-22 14:41 UTC (permalink / raw)
  To: iwd

[-- Attachment #1: Type: text/plain, Size: 2516 bytes --]

systemd specifies a special passive target unit 'network-pre.target'
which may be pulled in by services that want to run before any network
interface is brought up or configured. Correspondingly, network
management services such as iwd and ead should specify
After=network-pre.target to ensure a proper ordering with respect to
this special target. For more information on network-pre.target, see
systemd.special(7).

Two examples to explain the rationale of this change:

1. On one of our embedded systems running iwd, a oneshot service is
   run on startup to configure - among other things - the MAC address of
   the wireless network interface based on some data in an EEPROM.
   Following the systemd documentation, the oneshot service specifies:

        Before=network-pre.target
        Wants=network-pre.target

   ... to ensure that it is run before any network management software
   starts. In practice, before this change, iwd was starting up and
   connecting to an AP before the service had finished. iwd would then
   get kicked off by the AP when the MAC address got changed. By
   specifying After=network-pre.target, systemd will take care to avoid
   this situation.

2. An administrator may wish to use network-pre.target to ensure
   firewall rules are applied before any network management software is
   started. This use-case is described in the systemd documentation[1].
   Since iwd can be used for IP configuration, it should also respect
   the After=network-pre.target convention.

Note that network-pre.target is a passive unit that is only pulled in if
another unit specifies e.g. Wants=network-pre.target. If no such unit
exists, this change will have no effect on the order in which systemd
starts iwd or ead.

[1] https://www.freedesktop.org/wiki/Software/systemd/NetworkTarget/
---
 src/iwd.service.in   | 1 +
 wired/ead.service.in | 1 +
 2 files changed, 2 insertions(+)

diff --git a/src/iwd.service.in b/src/iwd.service.in
index 77819eaf..96e4abac 100644
--- a/src/iwd.service.in
+++ b/src/iwd.service.in
@@ -1,5 +1,6 @@
 [Unit]
 Description=Wireless service
+After=network-pre.target
 Before=network.target
 Wants=network.target
 
diff --git a/wired/ead.service.in b/wired/ead.service.in
index 387fdb68..6403c9e4 100644
--- a/wired/ead.service.in
+++ b/wired/ead.service.in
@@ -1,5 +1,6 @@
 [Unit]
 Description=Ethernet service
+After=network-pre.target
 Before=network.target
 Wants=network.target
 
-- 
2.29.2

^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH v2] build: add After=network-pre.target to service files
  2021-01-22 14:41 [PATCH v2] build: add After=network-pre.target to service files Alvin =?unknown-8bit?q?=C5=A0ipraga?=
@ 2021-01-22 20:18 ` Denis Kenzior
  0 siblings, 0 replies; 2+ messages in thread
From: Denis Kenzior @ 2021-01-22 20:18 UTC (permalink / raw)
  To: iwd

[-- Attachment #1: Type: text/plain, Size: 2149 bytes --]

Hi Alvin,

On 1/22/21 8:41 AM, Alvin Šipraga wrote:
> systemd specifies a special passive target unit 'network-pre.target'
> which may be pulled in by services that want to run before any network
> interface is brought up or configured. Correspondingly, network
> management services such as iwd and ead should specify
> After=network-pre.target to ensure a proper ordering with respect to
> this special target. For more information on network-pre.target, see
> systemd.special(7).
> 
> Two examples to explain the rationale of this change:
> 
> 1. On one of our embedded systems running iwd, a oneshot service is
>     run on startup to configure - among other things - the MAC address of
>     the wireless network interface based on some data in an EEPROM.
>     Following the systemd documentation, the oneshot service specifies:
> 
>          Before=network-pre.target
>          Wants=network-pre.target
> 
>     ... to ensure that it is run before any network management software
>     starts. In practice, before this change, iwd was starting up and
>     connecting to an AP before the service had finished. iwd would then
>     get kicked off by the AP when the MAC address got changed. By
>     specifying After=network-pre.target, systemd will take care to avoid
>     this situation.
> 
> 2. An administrator may wish to use network-pre.target to ensure
>     firewall rules are applied before any network management software is
>     started. This use-case is described in the systemd documentation[1].
>     Since iwd can be used for IP configuration, it should also respect
>     the After=network-pre.target convention.
> 
> Note that network-pre.target is a passive unit that is only pulled in if
> another unit specifies e.g. Wants=network-pre.target. If no such unit
> exists, this change will have no effect on the order in which systemd
> starts iwd or ead.
> 
> [1] https://www.freedesktop.org/wiki/Software/systemd/NetworkTarget/
> ---
>   src/iwd.service.in   | 1 +
>   wired/ead.service.in | 1 +
>   2 files changed, 2 insertions(+)
> 

Applied, thanks.

Regards,
-Denis

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2021-01-22 20:18 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-01-22 14:41 [PATCH v2] build: add After=network-pre.target to service files Alvin =?unknown-8bit?q?=C5=A0ipraga?=
2021-01-22 20:18 ` Denis Kenzior

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.