[systemd-devel] network interface renaming via PCI ID w/ systemd-udevd

Matthew Hall mhall at mhcomputing.net
Thu Nov 12 00:52:40 PST 2015

On Thu, Nov 12, 2015 at 09:56:28AM +0200, Mantas Mikul??nas wrote:
> You begin with saying that eth# is good because that's how it's been done
> for decades ??? but then you say the exact same thing is now *bad* and the
> kernel should start putting new interfaces under net#, completely
> contradicting your earlier "trying to change it would drive me crazy". What
> even?
> The kernel has been "dynamically populating the eth* namespace with random
> unexpected network interfaces" since day one. It's not a systemd thing.
> It's as you said "how UNIX has always worked".

Yes, of course at first it appears to be a contradiction.

Until you consider that for most of these decades, the software was populating 
more or less the same set of static devices once at boot, albeit in a 
potentially weird order. It was not randomly adding or removing things 
on-the-fly as some new driver comes up or down.

So, we took was was an admittedly semi-random process that was working pretty 
well, and starting doing thinsg in a new way. Except this new way comes with 
some unpleasant side effects.

This new way steals the old eth* namespace everybody was comfortable with, 
despite its issues, and makes it a lot more random and full of weird dynamic 
stuff. The need for weird dynamic stuff was unavoidable, but it seems 
unhelpful to complicate the problems with eth* by pouring more gasoline on it.

Putting weird stuff in there by itself would not be a big deal. Except now 
you're saying that we are prohibited from giving meaning and lofical back to 
that namespace, merely because the software wants to reserve the right to 
randomly insert weird stuff into the middle of that namespace at any point for 
no really reason in terms of features or usability as far as I could determine.

So I'm sending a contradictory email not because I am crazy but actually in 
response to a contradictory policy from upstream! :) What we are seeing here 
is a butterfly effect. A small change in the initial conditions, i.e. of the 
level of dynamism expected of eth* compared to the past, has caused an 
unexpectedly large disturbance in the usability of the environment.

It can be overcome, of course, with an override file that would more clearly 
allocate the devices... except we're being told the one classic namespace 
we're used to using for decades, is now *precisely* the one we're not supposed 
to use. And nobody provided a working example of the override file in the 
documentation... so then no new users experiencing the changes will have any 
good idea what to do to fix things.


More information about the systemd-devel mailing list