[systemd-devel] networkd-218 seems to ignore .link files

Andrew Cooks acooks at linux.com
Mon Apr 20 20:42:12 PDT 2015


On Tue, Apr 21, 2015 at 12:40 AM, Lennart Poettering <lennart at poettering.net
> wrote:

> On Wed, 15.04.15 01:08, Andrew Cooks (acooks at linux.com) wrote:
>
> > On Tue, Jan 13, 2015 at 6:46 AM, Jan Engelhardt <jengelh at inai.de> wrote:
> >
> > >
> > > On Monday 2015-01-12 18:29, Tom Gundersen wrote:
> > > >> In systemd-218, I have configured the following testcase:
> > > >>
> > > >> /etc/systemd/network# ls -al
> > > >> total 20
> > > >> drwxr-xr-x 2 root root 4096 Jan 11 18:14 .
> > > >> drwxr-xr-x 5 root root 4096 Jan 11 16:23 ..
> > > >> -rw-r--r-- 1 root root   96 Jan 11 18:14 99a-ether.link
> > > >
> > > >Hm, isn't this just a problem of 99a-ether.link being ordered after
> > > >99-default.link?
> > >
> > > Well, the manpage states: "All link files are collectively
> > > sorted and processed in lexical order", with that, I would assume
> > > that 99a, being processed after 99, would override 99.
> > >
> > > >It works for me when naming it 98-ether.link instead.
> > >
> > > Not in my case. I have a feeling networkd won't touch
> > > [08:00:27:0a:c5:b2]'s interface name because it has already
> > > been named by udev to enp0s3 before networkd got a chance to run.
> > > Could that be it?
>
> Note that networkd doesn't rename interfaces, only udev does.
>
> udev implements .link processing, nothing else.
>
> > I'm having a similar problem while running systemd version-219. Did you
> > work out what was wrong?
>
> Maybe this is debian and the saving of interface names is still in
> place?
>

Nope, sorry, this is based on yocto. The good news is that all legacy stuff
can be safely ignored.


>
> > # cat /etc/systemd/network/01-mgmt.link
> > [Match]
> > Path=pci-0000:01:00.0
> > Type=ether
> >
> > [Link]
> > Name=mgmt
> > MACAddressPolicy=persistent
>
> Consider testing the .link file with "udevadm test-builtin
> net_setup_link..."


Thanks, this is exactly what I needed to find the problem.

There were two issues with my .link file:
I needed to call my local override 100-mgmt.link instead of 01-mgmt.link.
IMHO, the ordering of the .link files is somewhat unfortunate, even though
the documentation did try to explain it.

Secondly, the Path in the [Match] section was wrong. The examples use
pci-0000:xx:yy.0-* and 'udevadm info /sys/class/net/enp1s0' shows
'ID_PATH=pci-0000:01:00.0' (exactly what I used, as the man page
instructs), but it only started working when I tried 'Path=*0000:01:00.0*'.

# udevadm test-builtin net_setup_link /sys/class/net/enp1s0
calling: test-builtin
=== trie on-disk ===
tool version:          219
file size:         6685604 bytes
header size             80 bytes
strings            1715076 bytes
nodes              4970448 bytes
Load module index
timestamp of '/etc/systemd/network' changed
Parsed configuration file /etc/systemd/network/enp3s0.link
Parsed configuration file /etc/systemd/network/enp2s0.link
Parsed configuration file /lib/systemd/network/99-default.link
Parsed configuration file /etc/systemd/network/100-mgmt.link
Created link configuration context.
device 0xb77f6040 has devpath
'/devices/pci0000:00/0000:00:04.0/0000:01:00.0/ne'
ID_NET_DRIVER=r8169
device 0xb77f6040 filled with db file data
device 0xb77f6940 has devpath
'/devices/pci0000:00/0000:00:04.0/0000:01:00.0'
Config file /lib/systemd/network/99-default.link applies to device enp1s0
ID_NET_LINK_FILE=/lib/systemd/network/99-default.link
Unload module index
Unloaded link configuration context.


# cat 100-mgmt.link
[Match]
Path=*0000:01:00.0*

[Link]
Name=ManagementPort
MACAddressPolicy=persistent



Thanks for the help, Lennart!

a.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/systemd-devel/attachments/20150421/1b9f9576/attachment-0001.html>


More information about the systemd-devel mailing list