[systemd-devel] system is not match systemd.link configs

Henti Smith henti at gaydonsmith.co.uk
Mon Oct 28 21:53:21 UTC 2024


On Mon, 28 Oct 2024 at 19:24, Silvio Knizek <killermoehre at gmx.net> wrote:

> Am Montag, dem 28.10.2024 um 17:56 +0000 schrieb Henti Smith:
> > On Mon, 28 Oct 2024 at 13:47, Andrei Borzenkov <[arvidjaar at gmail.com
> ](mailto:arvidjaar at gmail.com)> wrote:
> >
> > > On Mon, Oct 28, 2024 at 3:07 PM Henti Smith <[henti at gaydonsmith.co.uk
> ](mailto:henti at gaydonsmith.co.uk)> wrote:
> > > >
> > > > On Mon, 28 Oct 2024 at 10:38, Andrei Borzenkov <[arvidjaar at gmail.com
> ](mailto:arvidjaar at gmail.com)> wrote:
> > > > >
> > > > > On Thu, Oct 24, 2024 at 6:29 PM Henti Smith <[
> henti at gaydonsmith.co.uk](mailto:henti at gaydonsmith.co.uk)> wrote:
> > > > > >
> > > > > > Good day everybody
> > > > > >
> > > > > > I have two link files for mvc-sw1 and mvc-sw2.
> > > > > >
> > > > > > `mvc-sw1`
> > > > > >
> > > > > > ```ini
> > > > > > # Fixed MAC and name for eno2 (Switch 1 connection) when debug
> board is plugged in
> > > > > > # Renamed to mvc-sw1 by PCI Address and set custom MAC address.
> > > > > > [Match]
> > > > > >
> Property=DEVPATH=/devices/pci0000:00/0000:00:10.0/0000:05:00.0/net/eno2
> > > > > >
> > > > > > [Link]
> > > > > > MACAddress=02:00:00:00:05:00
> > > > > > Name=mvc-sw1
> > > > > > ```
> > > > > >
> > > > > > `mvc-sw2`
> > > > > >
> > > > > > ```ini
> > > > > > # Fixed MAC and name for enp6s0 (Block Diagram) when debug board
> is plugged in
> > > > > > # Renamed to mvc-sw2 by PCI Address and set custom MAC address.
> > > > > > [Match]
> > > > > >
> Property=DEVPATH=/devices/pci0000:00/0000:00:11.0/0000:06:00.0/net/enp6s0
> > > > > > ```
> > > > >
> > > > > These names are already the result of earlier renamoing. I am not
> sure systemd/udev/networkd will rename the second time.
> > > >
> > > > Would that be udev ?
> > > >
> > > > we're trying hard to use systemd for all our network management. If
> this is not a realistic goal, what is the correct way of managing our
> network with systemd alongside other tools ?
> > >
> > > Yes, networkd.link files provide the desired names and naming policy,
> it is systemd-udevd that applies them.
> > >
> > > You need to match on some intrinsic device properties and these rules
> must be present when systemd-udevd first sees and renames these interfaces.
> Which often means in initrd/initramfs.
> >
> > Good evening Andrei,
> >
> > Where can I find detailed information on where to find the names when
> systemd-udevd sees the interface for the first time ?
> >
> > Silvio in my previous mail thread commented that I can use  udevadm info
> which is what I'm trying to do here. Is there another method to get the
> "pre systemd" interface names that I should be using ?
> >
> > I cannot use mac addresses to match on, nor the Path as both are not
> reliable in my use case, hence using the full DEVPATH from udevadm.
> >
> > Any assistance will be appreciated.
> >
> > Kind regards
> > Henti
>
> Hi,
>
> why do you use
> `Property=DEVPATH=/devices/pci0000:00/0000:00:11.0/0000:06:00.0/net/enp6s0`
> and not `Path=0000:06:00.0`, as stated by <man:systemd.link>?
>

We have PCI debug boards that get added and removed during use and that
increments and decrements the PCI addresses. I have two devices on
consecutive PCI addresses but different bus addresses, so I'm trying to
match on bus address not the slot address.
The only way I've been able to find to do that is using the full DEVPATH,
but for that I need the interface name as well.


> What systemd version do you use, so I can reference online? Also, is your
> `.link` file applied? What are `networkctl status` and `networkctl status
> <interface_name>` saying? What says `udevadmin info
> /sys/class/net/<interface_name>` for all the  interfaces in question?
>

Focal ubuntu, systemd 245.4

I'll have to check tomorrow at the office for networkctl status and the
udevadm info was in my first mail, but I'll add it below again.

```
P: /devices/pci0000:00/0000:00:10.0/0000:05:00.0/net/eno2
L: 0
E: DEVPATH=/devices/pci0000:00/0000:00:10.0/0000:05:00.0/net/eno2
E: INTERFACE=eno2
E: IFINDEX=4
E: SUBSYSTEM=net
E: USEC_INITIALIZED=8968404
E: ID_NET_NAMING_SCHEME=v245
E: ID_NET_NAME_ONBOARD=eno2
E: ID_NET_LABEL_ONBOARD=Onboard ETHERNET Controller
E: ID_NET_NAME_PATH=enp5s0
E: ID_BUS=pci
E: ID_VENDOR_ID=0x11ab
E: ID_MODEL_ID=0x0f13
E: ID_PCI_CLASS_FROM_DATABASE=Network controller
E: ID_PCI_SUBCLASS_FROM_DATABASE=Ethernet controller
E: ID_VENDOR_FROM_DATABASE=Marvell Technology Group Ltd.
E: ID_PATH=pci-0000:05:00.0
E: ID_PATH_TAG=pci-0000_05_00_0
E: ID_NET_DRIVER=oak
E: ID_NET_LINK_FILE=/etc/systemd/network/10-oxb-mvc-sw1-debug.link
E: ID_NET_NAME=eno2
E: SYSTEMD_ALIAS=/sys/subsystem/net/devices/eno2
/sys/subsystem/net/devices/eno2
E: TAGS=:systemd:
```

```
P: /devices/pci0000:00/0000:00:11.0/0000:06:00.0/net/enp6s0
L: 0
E: DEVPATH=/devices/pci0000:00/0000:00:11.0/0000:06:00.0/net/enp6s0
E: INTERFACE=enp6s0
E: IFINDEX=5
E: SUBSYSTEM=net
E: USEC_INITIALIZED=8928106
E: ID_NET_NAMING_SCHEME=v245
E: ID_NET_NAME_PATH=enp6s0
E: ID_BUS=pci
E: ID_VENDOR_ID=0x11ab
E: ID_MODEL_ID=0x0f13
E: ID_PCI_CLASS_FROM_DATABASE=Network controller
E: ID_PCI_SUBCLASS_FROM_DATABASE=Ethernet controller
E: ID_VENDOR_FROM_DATABASE=Marvell Technology Group Ltd.
E: ID_PATH=pci-0000:06:00.0
E: ID_PATH_TAG=pci-0000_06_00_0
E: ID_NET_DRIVER=oak
E: ID_NET_LINK_FILE=/etc/systemd/network/10-oxb-mvc-sw2-debug.link
E: ID_NET_NAME=enp6s0
E: SYSTEMD_ALIAS=/sys/subsystem/net/devices/enp6s0
/sys/subsystem/net/devices/enp6s0
E: TAGS=:systemd:
```


> In the end, if your interface locations or hardware properties are *not*
> reliable, than *no* automatism in the world would be able to assign static
> values to them.
>

This is what I'm trying to resolve. With and without the debug PCI card I
ahve two sets of addresses and if I can create two sets of config to match
each, that should work.

Henti
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/systemd-devel/attachments/20241028/ccd08cab/attachment-0001.htm>


More information about the systemd-devel mailing list