Community
cancel
Showing results for 
Search instead for 
Did you mean: 
ALyak
Beginner
1,686 Views

Persistent eth names with SR-IOV

Hi everybody,

I have a ubuntu box with a dual-port 82599EB card, so I have two Physical Functions shown up. Each PF spawns 10 VFs.

One of the applications I am running, bases things on persistent network interface names.

I would like to know whether there is a way to ensure persistent naming of the PFs across reboots, like "eth2" and "eth3".

Sometimes, eth3 comes up as eth23-eth3 and so on.

I have a udev rule that is supposed to give persistent names based on MAC address:

# PCI device 0x8086:0x10fb (ixgbe)

 

SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:1b:21:a3:bf:40", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth2"

# PCI device 0x8086:0x10fb (ixgbe)

 

SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:1b:21:a3:bf:41", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth3"

However, for some reason, this doesn't work.

What is happening, I believe, that PFs and VFs are being discovered concurrently. So if a VF is discovered before the second PF, it takes its name (say eth3). Later, when the second PF is discovered, it cannot receive the same name, so it generates a name like ethXX-eth3.

I tried to put a udev rule to give persistent names based on PCI addresses of the PFs:

ACTION=="add", SUBSYSTEM=="net", BUS=="pci", ID=="0000:03:00.0", NAME="eth2"

 

ACTION=="add", SUBSYSTEM=="net", BUS=="pci", ID=="0000:03:00.1", NAME="eth3

But this did not work also. Sometimes, after a reboot, names still get messed up.

Any help is appeciated.

Thanks,

Alex.

0 Kudos
3 Replies
Patrick_K_Intel1
Employee
65 Views

Alex,

What you describe is a well-known issue. One that is unfortunately out of the control of we at Intel, and squarely in the hands of the kernel guys.

I'm asking around here if anybody has a script or a solution for you, however thus far I've not magic wand I can provide you. Hopefully somebody a lot smarter than I reads this question and has a solution for us.

- Patrick

p.s.

Have you considered just never rebooting your system?

ALyak
Beginner
65 Views

Thanks, Patrick.

Can you pls elaborate what exactly is the known-issue here? Is it the udev rule not working? Or something else? Perhaps I can take it further to udev developers.

Thanks!

Alex.

Patrick_K_Intel1
Employee
65 Views

I was referring to the order in which devices are enumarated. I'm not familair with the udev rules. I will keep my eyes and ears open; if I find something I'll post it.

I did stumble across this article - that has some similar things your scripts do:

http://www.google.com/url?sa=t&rct=j&q=udev%20fules%20ethernet%20names&source=web&cd=1&ved=0CCQQFjAA... http://www.google.com/url?sa=t&rct=j&q=udev%20fules%20ethernet%20names&source=web&cd=1&ved=0CCQQFjAA...

Reply