Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 471438 - >=sys-fs/udev-197: predictable network interface names are not persistent
Summary: >=sys-fs/udev-197: predictable network interface names are not persistent
Status: RESOLVED NEEDINFO
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Core system (show other bugs)
Hardware: All Linux
: Normal normal
Assignee: udev maintainers
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2013-05-27 14:55 UTC by Ilya Lebedev
Modified: 2013-05-27 17:00 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Ilya Lebedev 2013-05-27 14:55:03 UTC
As stated in http://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames
> Stable interface names even when hardware is added or removed, i.e. no re-enumeration takes place

But this is wrong for my hardware.
MB: M4A88TD-M EVO/USB3 (AMD 880G/SB850)
Net1: Realtek® 8111E (built-in)
Net2: 3COM 3C905B-TX (PCI)
Net3: D-LINK DGE-560T/B1A (PCIe)

For configuration MB+Net1+Net2 I see the following names:
Net1: enp4s0
Net2: enp5s5

For configuration MB+Net1+Net2+Net3 I see the following names:
Net1: enp5s0
Net2: enp6s5
Net3: enp3s0

Reproducible: Always

Steps to Reproduce:
1. Add 1 more PCIe network card 
2. See all interface names are changed

Actual Results:  
Was:
Net1: enp4s0
Net2: enp5s5

Now:
Net1: enp5s0
Net2: enp6s5
Net3: enp3s0

Expected Results:  
Was:
Net1: enp4s0
Net2: enp5s5

Now:
Net1: enp4s0
Net2: enp5s5
Net3: enp3s0

Portage 2.1.11.62 (default/linux/x86/13.0, gcc-4.4.7, glibc-2.15-r3, 3.7.10-gentoo i686)
=================================================================
System uname: Linux-3.7.10-gentoo-i686-AMD_Phenom-tm-_II_X4_B45_Processor-with-gentoo-2.2
KiB Mem:     3618452 total,    175264 free
KiB Swap:    8392860 total,   8392860 free
Timestamp of tree: Mon, 27 May 2013 01:00:01 +0000
ld GNU ld (GNU Binutils) 2.22
app-shells/bash:          4.2_p45
dev-java/java-config:     2.1.11-r3
dev-lang/python:          2.7.3-r2, 3.1.5, 3.2.3-r2
dev-util/cmake:           2.8.9
dev-util/pkgconfig:       0.28
sys-apps/baselayout:      2.2
sys-apps/openrc:          0.11.8
sys-apps/sandbox:         2.5
sys-devel/autoconf:       2.69
sys-devel/automake:       1.9.6-r3, 1.11.6, 1.12.6
sys-devel/binutils:       2.22-r1
sys-devel/gcc:            4.4.7, 4.6.3
sys-devel/gcc-config:     1.7.3
sys-devel/libtool:        2.4-r1
sys-devel/make:           3.82-r4
sys-kernel/linux-headers: 3.6 (virtual/os-headers)
sys-libs/glibc:           2.15-r3
Repositories: gentoo zugaina x-portage
ACCEPT_KEYWORDS="x86"
ACCEPT_LICENSE="* -@EULA"
CBUILD="i686-pc-linux-gnu"
CFLAGS="-march=amdfam10 -O2 -pipe -fomit-frame-pointer"
CHOST="i686-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/gnupg/qualified.txt"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/gconf /etc/gentoo-release /etc/php/apache2-php5.3/ext-active/ /etc/php/apache2-php5.4/ext-active/ /etc/php/cgi-php5.3/ext-active/ /etc/php/cgi-php5.4/ext-active/ /etc/php/cli-php5.3/ext-active/ /etc/php/cli-php5.4/ext-active/ /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo"
CXXFLAGS="-march=amdfam10 -O2 -pipe -fomit-frame-pointer"
DISTDIR="/usr/portage/distfiles"
FCFLAGS="-O2 -march=i686 -pipe"
FEATURES="assume-digests binpkg-logs config-protect-if-modified distlocks ebuild-locks fixlafiles merge-sync news parallel-fetch protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch"
FFLAGS="-O2 -march=i686 -pipe"
GENTOO_MIRRORS="http://distfiles.gentoo.org"
LANG="ru_RU.UTF-8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
MAKEOPTS="-j2"
PKGDIR="/usr/portage/packages"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/var/lib/layman/zugaina /usr/local/portage"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="acl acpi activefilter additions amavis apache2 apm authdaemond authlib bash-completion bcmath berkdb binary-drivers branding bzip2 calendar caps cgi checkpath clamav clamd cli colordiff conntrack contentcache courier cracklib crypt ctype curl curlwrappers cxx deflate dhcp disassembler dkim dlna dmraid dri dso eap-tls edit enscript exif expat extensions fam fastcgi fbcon ffmpeg fileinfo filter fortran fpm ftp gcrypt gd gdbm geoip gif gnutls gocr gpm gzip hardcoded-tables hash hdri headless hpn hvm iconv icu ifsession igbinary imagemagick inifile inode inotify intl ipc ipv6 jpeg jpeg2k json justify keymap kmod less libffi libnotify libwww linuxthreads lm_sensors logrotate lzma maildir matroska mbox mclib mdadm mdev memlimit mhash mime mktemp mode-owner modperl modules mpi mudflap mysql mysqli mysqlnd nano-syntax ncurses netlink nls nptl nscd openmp openrc openssl optimization pam pam_ssh parse-clocks passwdqc pch pcntl pcre pdo perl perl-geoipupdate php png posix postproc pppd pregen python python3 readline reiser4 reiserfs rootfs savedconfig script session sftp sharedmem simplexml sockets spamassassin spell sse sse2 ssh ssl ssse3 startup-notification subversion suexec svg symlink syslog system-cxx-headers sysvipc tcpd threads tidy tiff tokenizer transcode truetype udev unicode upnp upnp-av vhosts virtualbox webdav-neon wordexp x86 xml xmlreader xmlrpc xmlwriter xsl zip zlib" ABI_X86="32" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1 emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic auth_digest authn_anon authn_dbd authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi dav dav_fs dav_lock dbd deflate dir disk_cache env expires ext_filter file_cache filter headers ident imagemap include info log_config logio mem_cache mime mime_magic negotiation perl proxy proxy_ajp proxy_balancer proxy_connect proxy_http rewrite setenvif so speling status unique_id userdir usertrack vhost_alias" APACHE2_MPMS="worker" CALLIGRA_FEATURES="kexi words flow plan sheets stage tables krita karbon braindump author" CAMERAS="ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ubx" INPUT_DEVICES="keyboard mouse evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LINGUAS="en ru" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php5-3" PYTHON_SINGLE_TARGET="python2_7" PYTHON_TARGETS="python2_7 python3_2" RUBY_TARGETS="ruby18 ruby19" USERLAND="GNU" VIDEO_CARDS="fbdev glint intel mach64 mga nouveau nv r128 radeon savage sis tdfx trident vesa via vmware dummy v4l" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account"
Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, USE_PYTHON
Comment 1 Samuli Suominen (RETIRED) gentoo-dev 2013-05-27 15:18:55 UTC
correct, if you add/remove instead of plain replace it's likely the ordering changes as the machine (bios) sees the configuration different (which is predictable ;-)

http://cgit.freedesktop.org/systemd/systemd/tree/src/udev/udev-builtin-net_id.c#n22

if you plan to add/remove instead of replacing the said device often, for whatever reason, you propably want to go with the MAC based enx* names or custom MAC based rules instead
Comment 2 Ilya Lebedev 2013-05-27 17:00:15 UTC
Then what is the reason to use "predictable names" if they destroy everything? :)

For what reason http://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames states that add/remove hardware is safe - "NO RE-ENUMERATION TAKES PLACE"?

===
Come again, what good does this do?

With this new scheme you now get:

    Stable interface names across reboots
    Stable interface names even when hardware is added or removed, i.e. no re-enumeration takes place
====

And how does it come that GEOGRAPHICAL location of the other cards is changed by adding a new one?