[systemd-devel] [systemd.link] How to use NamePolicy=mac?

Tom Gundersen teg at jklm.no
Wed Oct 22 09:22:29 PDT 2014


On Wed, Oct 8, 2014 at 10:04 AM, Moviuro <moviuro at gmail.com> wrote:
> Hi all!
>
> In order to fix in an easily predictable manner the interfaces' names, I went
> and wrote the following .link file:
>
> /etc/systemd/network/00-default.link
> [Link]
> NamePolicy=mac
> MACAddressPolicy=persistent

Looks good.

> I daemon-reload, reboot:
>
> $ ip a
> [...]
> 4: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP
> group default qlen 1000
>     link/ether b8:27:eb:aa:aa:d2 brd ff:ff:ff:ff:ff:ff
>     [...]
> [...]
>
> However,
> $ udevadm test-builtin net_setup_link /sys/class/net/eth0
> calling: test-builtin
> load module index
> timestamp of '/etc/systemd/network' changed
> Parsed configuration file /usr/lib/systemd/network/99-default.link
> Parsed configuration file /etc/systemd/network/00-default.link
> Created link configuration context.
> ID_NET_DRIVER=smsc95xx
> Config file /etc/systemd/network/00-default.link applies to device eth0
> ID_NET_NAME=enxb827ebaaaad2

Looks bad. This is a bug somewhere, if ID_NET_NAME is set, then also
your if should get renamed. Does this also happen if you reboot, and
can you reproduce with current git?

I'll take a look. Thanks for the report!

Cheers,

Tom

> unload module index
> Unloaded link configuration context.
>
> Also,
> # /lib/systemd/systemd-udevd --debug
> device 0xb78bb3f8 has devpath '/devices/virtual/block/ram9'
> restoring old watch on '/dev/ram9'
> adding watch on '/dev/ram9'
> device 0xb78bb3f8 has devpath '/devices/virtual/block/ram8'
> restoring old watch on '/dev/ram8'
> adding watch on '/dev/ram8'
> device 0xb78bb3f8 has devpath '/devices/virtual/block/ram7'
> restoring old watch on '/dev/ram7'
> adding watch on '/dev/ram7'
> device 0xb78bb3f8 has devpath '/devices/virtual/block/ram5'
> restoring old watch on '/dev/ram5'
> adding watch on '/dev/ram5'
> device 0xb78bb3f8 has devpath '/devices/virtual/block/ram14'
> restoring old watch on '/dev/ram14'
> adding watch on '/dev/ram14'
> device 0xb78bb3f8 has devpath '/devices/virtual/block/ram2'
> restoring old watch on '/dev/ram2'
> adding watch on '/dev/ram2'
> device 0xb78bb3f8 has devpath '/devices/virtual/block/ram15'
> restoring old watch on '/dev/ram15'
> adding watch on '/dev/ram15'
> device 0xb78bb3f8 has devpath '/devices/virtual/block/ram6'
> restoring old watch on '/dev/ram6'
> adding watch on '/dev/ram6'
> device 0xb78bb3f8 has devpath '/devices/virtual/block/ram4'
> restoring old watch on '/dev/ram4'
> adding watch on '/dev/ram4'
> device 0xb78bb3f8 has devpath '/devices/virtual/block/ram3'
> restoring old watch on '/dev/ram3'
> adding watch on '/dev/ram3'
> device 0xb78bb3f8 has devpath '/devices/virtual/block/ram13'
> restoring old watch on '/dev/ram13'
> adding watch on '/dev/ram13'
> device 0xb78bb3f8 has devpath '/devices/virtual/block/ram11'
> restoring old watch on '/dev/ram11'
> adding watch on '/dev/ram11'
> device 0xb78bb3f8 has devpath '/devices/virtual/block/loop6'
> restoring old watch on '/dev/loop6'
> adding watch on '/dev/loop6'
> device 0xb78bb3f8 has devpath '/devices/virtual/block/ram12'
> restoring old watch on '/dev/ram12'
> adding watch on '/dev/ram12'
> device 0xb78bb3f8 has devpath '/devices/virtual/block/loop3'
> restoring old watch on '/dev/loop3'
> adding watch on '/dev/loop3'
> device 0xb78bb3f8 has devpath '/devices/virtual/block/loop5'
> restoring old watch on '/dev/loop5'
> adding watch on '/dev/loop5'
> device 0xb78bb3f8 has devpath '/devices/virtual/block/ram1'
> restoring old watch on '/dev/ram1'
> adding watch on '/dev/ram1'
> device 0xb78bb3f8 has devpath '/devices/virtual/block/ram0'
> restoring old watch on '/dev/ram0'
> adding watch on '/dev/ram0'
> device 0xb78bb3f8 has devpath '/devices/virtual/block/loop7'
> restoring old watch on '/dev/loop7'
> adding watch on '/dev/loop7'
> device 0xb78bb3f8 has devpath '/devices/virtual/block/ram10'
> restoring old watch on '/dev/ram10'
> adding watch on '/dev/ram10'
> device 0xb78bb3f8 has devpath '/devices/virtual/block/loop1'
> restoring old watch on '/dev/loop1'
> adding watch on '/dev/loop1'
> device 0xb78bb3f8 has devpath '/devices/virtual/block/loop2'
> restoring old watch on '/dev/loop2'
> adding watch on '/dev/loop2'
> device 0xb78bb3f8 has devpath '/devices/virtual/block/loop4'
> restoring old watch on '/dev/loop4'
> adding watch on '/dev/loop4'
> device 0xb78bb3f8 has devpath '/devices/virtual/block/loop0'
> restoring old watch on '/dev/loop0'
> adding watch on '/dev/loop0'
> device 0xb78bb3f8 has devpath '/devices/platform/mmc-
> bcm2835.0/mmc_host/mmc0/mmc0:59b4/block/mmcblk0/mmcblk0p2'
> restoring old watch on '/dev/mmcblk0p2'
> adding watch on '/dev/mmcblk0p2'
> device 0xb78bb3f8 has devpath '/devices/platform/mmc-
> bcm2835.0/mmc_host/mmc0/mmc0:59b4/block/mmcblk0/mmcblk0p1'
> restoring old watch on '/dev/mmcblk0p1'
> adding watch on '/dev/mmcblk0p1'
> device 0xb78bb3f8 has devpath '/devices/platform/mmc-
> bcm2835.0/mmc_host/mmc0/mmc0:59b4/block/mmcblk0'
> restoring old watch on '/dev/mmcblk0'
> adding watch on '/dev/mmcblk0'
> === trie on-disk ===
> tool version:          216
> file size:         6486785 bytes
> header size             80 bytes
> strings            1673705 bytes
> nodes              4813000 bytes
> load module index
> timestamp of '/etc/systemd/network' changed
> Parsed configuration file /usr/lib/systemd/network/99-default.link
> Parsed configuration file /etc/systemd/network/00-default.link
> Created link configuration context.
> timestamp of '/etc/udev/rules.d' changed
> timestamp of '/usr/lib/udev/rules.d' changed
> Reading rules file: /usr/lib/udev/rules.d/10-dm.rules
> Reading rules file: /usr/lib/udev/rules.d/11-dm-lvm.rules
> Reading rules file: /usr/lib/udev/rules.d/13-dm-disk.rules
> Reading rules file: /usr/lib/udev/rules.d/42-usb-hid-pm.rules
> Reading rules file: /usr/lib/udev/rules.d/50-firmware.rules
> Reading rules file: /usr/lib/udev/rules.d/50-udev-default.rules
> Reading rules file: /usr/lib/udev/rules.d/60-cdrom_id.rules
> Reading rules file: /usr/lib/udev/rules.d/60-drm.rules
> Reading rules file: /usr/lib/udev/rules.d/60-keyboard.rules
> Reading rules file: /usr/lib/udev/rules.d/60-persistent-alsa.rules
> Reading rules file: /usr/lib/udev/rules.d/60-persistent-input.rules
> Reading rules file: /usr/lib/udev/rules.d/60-persistent-serial.rules
> Reading rules file: /usr/lib/udev/rules.d/60-persistent-storage-tape.rules
> Reading rules file: /usr/lib/udev/rules.d/60-persistent-storage.rules
> Reading rules file: /usr/lib/udev/rules.d/60-persistent-v4l.rules
> Reading rules file: /usr/lib/udev/rules.d/61-accelerometer.rules
> Reading rules file: /usr/lib/udev/rules.d/63-md-raid-arrays.rules
> Reading rules file: /usr/lib/udev/rules.d/64-btrfs.rules
> Reading rules file: /usr/lib/udev/rules.d/64-md-raid-assembly.rules
> Reading rules file: /usr/lib/udev/rules.d/69-dm-lvm-metad.rules
> Reading rules file: /usr/lib/udev/rules.d/70-power-switch.rules
> Reading rules file: /usr/lib/udev/rules.d/70-uaccess.rules
> Reading rules file: /usr/lib/udev/rules.d/71-seat.rules
> Reading rules file: /usr/lib/udev/rules.d/73-seat-late.rules
> Reading rules file: /usr/lib/udev/rules.d/75-net-description.rules
> Reading rules file: /usr/lib/udev/rules.d/75-probe_mtd.rules
> Reading rules file: /usr/lib/udev/rules.d/75-tty-description.rules
> Reading rules file: /usr/lib/udev/rules.d/78-sound-card.rules
> Reading rules file: /usr/lib/udev/rules.d/80-drivers.rules
> Reading rules file: /usr/lib/udev/rules.d/80-net-setup-link.rules
> Reading rules file: /usr/lib/udev/rules.d/95-dm-notify.rules
> Reading rules file: /usr/lib/udev/rules.d/95-udev-late.rules
> Reading rules file: /usr/lib/udev/rules.d/99-systemd.rules
> Reading rules file: /etc/udev/rules.d/raspberrypi.rules
> rules contain 24576 bytes tokens (2048 * 12 bytes), 11452 bytes strings
> 1734 strings (21255 bytes), 1151 de-duplicated (10387 bytes), 584 trie nodes
> used
> set children_max to 10
> ^Cvalidate module index
> Check if link configuration needs reloading.
> unload module index
> Unloaded link configuration context.
>
> So question: how can I use the given ID_NET_NAME and get rid at vitam eternam
> of 'eth0'?
> This would be useful for services that require an interface name (e.g.
> Wpa_supplicant).
>
> The behavior is the same on my laptop (eth0 instead of enx<mac>; wlan0 instead
> of wlx<mac>); however, I don't have the output of the last commands to share.
>
> Best regards,
> --
> Moviuro @ PsychoticDelirium
> "Our life is the immortals' death."
> _______________________________________________
> systemd-devel mailing list
> systemd-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/systemd-devel
>


More information about the systemd-devel mailing list