Subscribe
Accepted Solution

Simulator can't locate network device (Fedora 16)

Hi, I upgraded my workstation to Fedora 16 and since that move I've been unable to get the simulator to start.  It panics as follows:

pf_packet_init: can't get IF flags: No such device

PANIC: pfif can't initialize device

version: NetApp Release 7.3.6: Thu Jul  7 00:41:19 PDT 2011

cc flags: L

dumpcore: pfif can't initialize device

This failure was probably caused by having your network interface down or an invalid interface. Re-run setup.sh and choose a different interface or fix the one you have chosen.

In Fedora 16 the naming of ethernet interfaces has changed from "ethX" to "emX" - trying to add the correct interface (em1 in this case) during setup fails with:

The network interfaces have been examined for use by the simulator:

Choosing a DOWN interface will cause the simulator to crash.

Either repair the interface(s) or choose the "default route" interface.

Which network interface should the simulator use? [default]: em1

No interface em1 found. Choose a network interface that the simulator should use.

The simulator is unable to attach to the default network interface.  I also tried attaching it to an alias interface, and a bridge interface, with similar results.  It seems something in the way Fedora 16 is presenting it's ethernet interface is causing the simulator to be unable to recognize it.

Anyone tackle this yet?

Re: Simulator can't locate network device (Fedora 16)

Anyone?  Bueller?

Re: Simulator can't locate network device (Fedora 16)

OK, I have a work-around in case anyone else tries to run the simulator on Fedora 15+.  There is a new naming scheme which is hardware location dependent.  This messes up software which is rigidly programmed to look for an "eth#" naming scheme.  The NetApp simulator is not alone in having this problem.

You can turn this off an go back to the old scheme naming method by doing the following (I actually did all three):

A) Update the name in the /etc/sysconfig/network-scripts/ifcfg-* file

B) Disable biosdevname in the kernel command line

C) Remove the biosdevname package

See the information below for the steps:

A) According to the documentation, you should have a file in /etc/sysconfig/network-scripts that is named "ifcfg-" and the name of your network device. To restore the name, you can rename this file to "ifcfg-eth0" and rename the device name from the current name to eth0 in the contents of the file. Once updated, restarting networking services or rebooting should enable the change.

You can also write rules in /etc/udev/rules.d/70-persistent-net.rules to change the device names to anything you wish. Such will take precedence over this physical location naming scheme. Such rules may look like:

SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:11:22:33:44:55", ATTR {type}=="1", KERNEL=="eth*", NAME="public"

B) To disable this feature you can reboot the computer and bring up the kernel command line in the boot menu. From the kernel command line, you can run:

biosdevname=0

To disable this feature.

C) Lastly, if you don't want to use this feature, you can simply remove the package by running the following command in a terminal as root:

yum remove biosdevname

This removes the package and on reboot will restore the traditional naming scheme