lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Message-ID: <20091106220509.GA15533@mock.linuxdev.us.dell.com> Date: Fri, 6 Nov 2009 16:05:09 -0600 From: "Domsch, Matt" <Matt_Domsch@...l.com> To: "K, Narendra" <Narendra_K@...l.com> Cc: Bryan Kadzban <bryan@...zban.is-a-geek.net>, dannf@...com, bhutchings@...arflare.com, netdev@...r.kernel.org, linux-hotplug@...r.kernel.org, "Hargrave, Jordan" <Jordan_Hargrave@...l.com>, "Rose, Charles" <Charles_Rose@...l.com>, "Shandilya, Sandeep K" <Sandeep_K_Shandilya@...l.com> Subject: Re: PATCH: Network Device Naming mechanism and policy On Wed, Nov 04, 2009 at 08:23:38AM -0600, K, Narendra wrote: > Similarly, export an attribute named "smbios_name" to sysfs, i.e > "/sys/class/net/eth0/smbios_name". "Cat /sys/class/net/eth0/smbios_name" > would show "Embedded_NIC_1[23..]" and this can be used by udev in > 70-persistent-net.rules as > > SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", > ATTR{smbios_name}=="Embedded_NIC_1", ATTR{type}=="1", KERNEL=="eth*", > NAME="eth0". > > I suppose this would not need any changes to the udev code and existing > udev infrastructure can be used as udev is capable handling > ATTR{something}. > > This would also ensure that whichever device is "Embedded_NIC_1" as per > the BIOS, will also be "eth0" in the os. We can grab the smbios_name value using biosdevname in a PROGRAM= part of the udev rule. But it doesn't actually solve the problem. We haven't changed the network device naming scheme from "eth%d" to something else. Therefore, by having rules which simply try to re-order names within that scheme, when they're being enumerated in parallel and racing, we get collisions. Take for example, this which tries to rename the 4 onboard NICs in a particular order, in the absence of any other rules: PROGRAM="/sbin/biosdevname --policy=smbios_names -i %k", RESULT=="Embedded NIC 1", NAME="eth0" PROGRAM="/sbin/biosdevname --policy=smbios_names -i %k", RESULT=="Embedded NIC 2", NAME="eth1" PROGRAM="/sbin/biosdevname --policy=smbios_names -i %k", RESULT=="Embedded NIC 3", NAME="eth2" PROGRAM="/sbin/biosdevname --policy=smbios_names -i %k", RESULT=="Embedded NIC 4", NAME="eth3" I wind up with instead this in ifconfig -a: eth0 00:1B:21:42:66:30 eth1 00:1B:21:42:66:31 eth2 00:22:19:59:8E:5A eth2_rename 00:22:19:59:8E:56 eth3 00:22:19:59:8E:5C eth3_rename 00:22:19:59:8E:58 When what I would have expected would have been: eth0 00:22:19:59:8E:56 eth1 00:22:19:59:8E:58 eth2 00:22:19:59:8E:5A eth3 00:22:19:59:8E:5C eth4 00:1B:21:42:66:30 eth5 00:1B:21:42:66:31 I can't use eth%d as the scheme - that's the kernel's scheme. I have to switch the scheme to something else. -- Matt Domsch Technology Strategist, Dell Office of the CTO linux.dell.com & www.dell.com/linux -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@...r.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists