Re: nic enumeration

Matt Domsch
2010-07-09T17:15:33Z

On Fri, Jul 09, 2010 at 12:27:53PM -0400, Loke, Chetan wrote:
> Ok, no renaming, I would like a reference. And symlink just doesn't work
> w/ the udevadm trigger business. We've tried that already.
>
> What needs to be changed in udev etc to create a soft link? Any place
> where I should start digging and gotchas to lookout for?

Unlike disks which have /dev/disk/by-{id,path,uuid}/* symlinks back to
/dev/sd*, which udev manages, network devices have no such on-disk
representation for udev to manage. My proposal to create such on-disk
mappings was shot down, as was my suggestion to create (multiple)
network device symlinks/references/aliases inside the kernel.

The approach I'm pursuing now is called libnetdevname[1], which can
take as input a device name from various name spaces (BIOS-provided
from SMBIOS or in future, ACPI, or perhaps a userspace mapping similar
to /etc/mactab in concept), and which as output is the single kernel
name for a device. Once plumbed into the tools that manipulate
network devices, it would allow you to do:
# ip addr add xx.xx.xx.xx dev Embedded_NIC_1
and have "Embedded_NIC_1" map to the appropriate "ethN", for use by
the calls into the kernel.

In this case, Embedded_NIC_1 would come from BIOS; conceivably other
namespace sources could hook into this same framework then.

FWIW, I have a talk at LinuxCon Boston coming up on this, and have a
proposal in for Linux Plumbers Conference as well.

Thanks,
Matt

[1] http://linux.dell.com/wiki/index.php/Oss/libnetdevname

--
Matt Domsch
Technology Strategist
Dell | Office of the CTO