Post your dmesg. ALWAYS. WITH EVERY SINGLE PROBLEM REPORT YOU MAKE. EVERY PROBLEM REPORT, EVERY TIME. You can use dmesg(8) or the contents of the /var/run/dmesg.boot file.

Post the output of ifconfig(8). The only thing you need to redact (change to xx.xx.xx.xx) are any "real" Internet addresses, if applicable.

Post the output of netstat(8) when it fails and goes down. Before restoring the connection. Run netstat three different times: with options -ni, then with -ns, then with -nm, redacting any "real" Internet addresses as above.

Last edited by jggimi; 10th June 2013 at 01:08 PM.
Reason: clarity on netstat(8), additional highlighting.

The reason the entiredmesg(8) output is required is that it provides the kernel understanding of the hardware used. Without this information all anyone can do is guess what is going on. We need to see what devices are attached, & the output provided has this information clipped.

A quick look in sysutils/firmware/wpi shows that this firmware has not been revised in two years. OpenBSD's package is version 3.2. Intel's version of firmware within the package is 15.32.2.9. Based on this stable firmware release, and with the limited information I've seen, I'm going to guess that your NIC has a hardware problem.

The Intel® PRO/Wireless 3945ABG microcode supplied by Intel is packaged and distributed by the Linux kernel Intel Wireless Legacy team. The website shows that 15.35.2.9 is the most recent released version of the microcode, and lists two Email contacts for technical support.

The Intel® PRO/Wireless 3945ABG microcode supplied by Intel is packaged and distributed by the Linux kernel Intel Wireless Legacy team. The website shows that 15.35.2.9 is the most recent released version of the microcode, and lists two Email contacts for technical support.

I think the wpi firmware is for 2200 devices. The 3.1 firmware was the last release before it was incorporated into the Linux Kernel. My source and the firmware download page. Unless someone pulls this out of the linux kernel, this looks like a wifi chip to avoid.

Quote:

This project was created by Intel to enable support for the Intel PRO/Wireless 2915ABG Network Connection and Intel PRO/Wireless 2200BG Network Connection mini PCI adapters. This work has since been merged into the kernel where is has been for a few years now. This project is considered stable and Intel is no longer maintaining it.

Is there a way to catch/detect this error in a more convenient way than reading and interpreting /var/log/messages? In my current setup, ifstated(8) is used to ping(8) Google every two minutes (mentioned earlier in this thread) to verify network connectivity. It would be nicer not to generate that network chatter (that often) and do local checks (perhaps, much more often).

After a firmware crash, $ifconfig wpi0 continues to report "status: active", so that's not a useful indicator.