[arch-dev-public] network interface naming with systemd 197

If you don't care about interface renaming with systemd 197 or you understand the change, you can stop reading here. I suggest everyone read the first point, though. ---------------------- Since 197 was just tagged and there still seems to be some confusion, here's an FAQ: *** What happens after installing systemd 197? For existing installs: Nothing happens, and this is strictly opt-in. A post_upgrade() message will mention the feature and add a dummy file called /etc/udev/rules.d/80-net-name-slot.rules to mask the new rule which performs the renaming. If you wish to opt-in, remove this dummy file. Next reboot, the rule will take effect. For new installs: You are opted-in to this change. The post_install() will do nothing to mask the rule. If you wish to opt out, you can do 1 of 2 things: 1) mask the rule: ln -s /dev/null /etc/udev/rules.d/80-net-name-slot.rules 2) provide your own udev rule that applies a NAME to the interface. As long as this rule is ordered lexically before 80-net-name-slot.rules, then the upstream rule will have no effect. For example, providing a file called 70-net-naming.rules will trump 80-net-name-slot.rules. *** What will the interfaces be renamed to if I opt-in? Run this as non-root: for i in /sys/class/net/*; do echo "==$i" udevadm test-builtin net_id "$i"; echo done 2>/dev/null Not all interfaces will have output for this command. No output means no renaming. For those that do, the below properties are capable of renaming the device, with highest priority first. - ID_NET_NAME_ONBOARD - ID_NET_NAME_SLOT - ID_NET_NAME_PATH So for an interface with both ID_NET_NAME_ONBOARD and ID_NET_NAME_PATH, the value of ID_NET_NAME_ONBOARD will be the new name of the interface. If you see none of these properties for an interface, it will not be renamed by /usr/lib/udev/rules.d/80-net-name-slot.rules. *** How should I go about updating my network config? I suggest figuring out what your device will be named in advance and altering your config BEFORE rebooting. Consult the documentation for your network provider on how to do this. If you don't want to do this, read the next 2 questions. *** I don't like this, or, I've never needed persistent names You'll never be forced to use the new schema. Masking the rule as explained above will always work, and you're still able to write a rule of your own to provide names you're comfortable with if that's what you're into. *** Is there any way to alias the old kernel name to the new name? No, the kernel does not support this. *** Need more info? Upstream wrote a wiki page with more detail. Some of this is redundant with the above: http://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames The careful reader might notice that names are path based. Yes, this does mean that USB devices or PCI devices which are physically moved to another port will suddenly change names. That's the trade-off for this scheme. *** STILL not satisfied? Code is the ultimate documentation, and has some examples of how various paths translate into the new naming scheme: http://cgit.freedesktop.org/systemd/systemd/tree/src/udev/udev-builtin-net_id.c *** Why are you still reading this? If you made it this far, you might be as crazy as I am, so here's Pinkie Pie dressed as a chicken: http://i.imgur.com/DDukE.png Cheers, Dave