Persistant random receiving packet drops with wi(4) and IBSS

Mike Wade mwade at bluehighway.net
Thu Feb 26 14:56:08 PST 2004


Greetings,

I'm experiencing a rather perplexing problem with 2 wireless nodes running
FreeBSD 4.9-STABLE utilizing the wi(4) driver in IBSS mode.  Periodically
I'm unable to receive packets (transmitting packets is fine) but I'm able
to see the incoming packets via tcpdump running in promisc mode only.  I'm
not able to see the incoming packets when it's not in promisc mode.

Here's how I'm able to observe/recreate the problem:

Node 1 pings Node 2
Node 2 pings Node 1

            input          (wi0)           output
   packets  errs      bytes    packets  errs      bytes colls
        12     0       1440         12     0       1188     0
        12     0       1440         12     0       1188     0
        12     0       1440         12     0       1188     0
        12     0       1440         12     0       1188     0

All is swell for 1-30 minutes until Node 1 stops receiving packets from
Node 2 for 5-60 seconds.  This situation always recovers.

            input          (wi0)           output
   packets  errs      bytes    packets  errs      bytes colls
         0     0          0          4     0        460     0
         0     0          0          4     0        460     0
         0     0          0          4     0        460     0
         0     0          0          4     0        460     0

(notice no input errors on Node 1)

If I tcpdump -e -vv -i wi0 on Node 1 I can see the packets reaching Node
1 but they are not passed up to the IP layer (I assume):

16:12:53.205704 0:2:6f:8:11:54 0:2:6f:8:11:56 0800 116: 192.168.0.2 >
192.168.0.1: icmp: echo request (ttl 64, id 30741, len 102)
16:12:53.453220 0:2:6f:8:11:54 0:2:6f:8:11:56 0800 116: 192.168.0.2 >
192.168.0.1: icmp: echo request (ttl 64, id 30742, len 102)

However, if I turn off promisc mode on wi0 by tcpdump -p -e -vv -i wi0 on
Node 1 I don't see the packets reaching Node 2.

Any thoughts on what's going on?  Is it a possible driver or firmware
issue?  It's as though the destination MAC address is wrong however
tcpdump -e is showing the right MAC address at least.

I'm just now getting around to adding some additional debug info into the
driver but I'm by no means a device driver expert so I expect progress to
be slow. :)

I'm able to reliably recreate the problem and would be happy to help
assist anyone in debugging this problem if they have any ideas.

The vital stats are:

OS: FreeBSD 4.9-STABLE

Hardware: Soekris 4521

Wireless Adapter on Node 1:
wi0 at port 0x240-0x27f irq 10 slot 0 on pccard0
wi0: 802.11 address: 00:02:6f:08:11:56
wi0: using RF:PRISM2.5 MAC:ISL3873
wi0: Intersil Firmware: Primary 1.01.00, Station 1.04.09

Wireless Adapter on Node 2:
wi0 at port 0x240-0x27f irq 10 slot 0 on pccard0
wi0: 802.11 address: 00:02:6f:08:11:54
wi0: using RF:PRISM2.5 MAC:ISL3873
wi0: Intersil Firmware: Primary 1.01.00, Station 1.04.09

wicontrol on Node 1:
NIC serial number:                      [ SN028051036 ]
Station name:                           [ FreeBSD WaveLAN/IEEE node ]
SSID for IBSS creation:                 [ test ]
Current netname (SSID):                 [ test ]
Desired netname (SSID):                 [ test ]
Current BSSID:                          [ 02:02:e9:91:11:56 ]
Channel list:                           [ 2047 ]
IBSS channel:                           [ 1 ]
Current channel:                        [ 1 ]
Comms quality/signal/noise:             [ 28 52 3 ]
Promiscuous mode:                       [ Off ]
Process 802.11b Frame:                  [ Off ]
Intersil-Prism2 based card:             [ 1 ]
Port type (1=BSS, 3=ad-hoc):            [ 4 ]
MAC address:                            [ 00:02:6f:08:11:56 ]
TX rate (selection):                    [ 3 ]
TX rate (actual speed):                 [ 1 ]
RTS/CTS handshake threshold:            [ 2347 ]
Create IBSS:                            [ Off ]
Access point density:                   [ 1 ]
Power Mgmt (1=on, 0=off):               [ 0 ]
Max sleep time:                         [ 100 ]
WEP encryption:                         [ Off ]
TX encryption key:                      [ 1 ]
Encryption keys:                        [  ][  ][  ][  ]

wicontrol on Node 2:
NIC serial number:                      [ SN028051036 ]
Station name:                           [ FreeBSD WaveLAN/IEEE node ]
SSID for IBSS creation:                 [ test ]
Current netname (SSID):                 [ test ]
Desired netname (SSID):                 [ test ]
Current BSSID:                          [ 02:02:e9:91:11:56 ]
Channel list:                           [ 2047 ]
IBSS channel:                           [ 1 ]
Current channel:                        [ 1 ]
Comms quality/signal/noise:             [ 26 58 6 ]
Promiscuous mode:                       [ Off ]
Process 802.11b Frame:                  [ Off ]
Intersil-Prism2 based card:             [ 1 ]
Port type (1=BSS, 3=ad-hoc):            [ 4 ]
MAC address:                            [ 00:02:6f:08:11:54 ]
TX rate (selection):                    [ 3 ]
TX rate (actual speed):                 [ 11 ]
RTS/CTS handshake threshold:            [ 2347 ]
Create IBSS:                            [ Off ]
Access point density:                   [ 1 ]
Power Mgmt (1=on, 0=off):               [ 0 ]
Max sleep time:                         [ 100 ]
WEP encryption:                         [ Off ]
TX encryption key:                      [ 1 ]
Encryption keys:                        [  ][  ][  ][  ]

---
Mike Wade (mwade at bluehighway.net)
Blue Highway Labs, LLC.


More information about the freebsd-net mailing list