[systemd-devel] Systemd setup DSA interfaces in port mode and bond them together?
Alvin Šipraga
ALSI at bang-olufsen.dk
Thu Nov 18 21:20:25 UTC 2021
Hi Brian,
On 11/18/21 01:20, Brian Hutchinson wrote:
> Yet another update, I was able to get it working .. but feel like it is
> a hack so comments welcome ... see below:
>
<snip>
>
> I tried and tried to get eth0 to come up before the bond was brought
> up. I had everything named in lexical order but didn't appear to
> matter. I added a eth0.network file and in it specified
> |ActivationPolicy=|always-up and other things but could not get eth0 to
> come up.
What kernel version are you using? Since Linux 5.11 we have the
following two changes ([1] and [2]) which should automatically bring
up/down the master (eth0) whenever user ports (lan1, lan2) are brought
up/down. Please confirm whether or not you are using 5.11 or later.
If you are using an older kernel, and systemd is version 243 or later,
you can use the BindCarrier= setting (see [1]) in the [Network] section
of your .network file(s) for lan1 and lan2. Something like this:
[Match]
Name=lan*
[Network]
BindCarrier=eth0
See also [3].
[1]
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=9d5ef190e5615a7b63af89f88c4106a5bc127974
[2]
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=c0a8a9c274936543e436aef691499304ce3127dc
[3]
https://www.freedesktop.org/software/systemd/man/systemd.network.html#BindCarrier=
[4] https://github.com/systemd/systemd/issues/7478#issuecomment-514562190
If both your kernel and systemd are old, I think you'll have to use
something like your hack.
One more thing:
> [Service]
> ExecStart=/usr/local/bin/eth0-up.sh
> RemainAfterExit=yes
>
> [Install]
> WantedBy=multi-user.target
>
> cat /usr/local/bin/eth0-up.sh
> #!/bin/bash
> ip link set eth0 up
You don't need a separate shell script, you can just invoke the ip
command directly:
[Service]
ExecStart=/usr/bin/ip link set eth0 up
...
Kind regards,
Alvin
More information about the systemd-devel
mailing list