Subject: likely bug in ieee80211_encap for IBSS/AHDEMO unicast output
To: David Young <dyoung@pobox.com>
From: Greg Troxel <gdt@ir.bbn.com>
List: current-users
Date: 10/16/2003 19:29:12
I cvs up'd (to the 10/14 sources) and ran build.sh (albeit with -u).
Hardware is IBM TP600E (2645-4AU) with (1.6ZC output before 80211ification)

  wi0 at pcmcia0 function 0: Lucent Technologies, WaveLAN/IEEE, Version 01.01
  wi0: port 0x400-0x43fpcmcia0: card irq 7
   802.11 address 00:02:2d:[redacted]
  wi0: using Lucent Technologies, WaveLAN/IEEE
  wi0: Lucent Firmware: Station (7.28.1)
  wi0: supported rates: 1Mbps 2Mbps 5.5Mbps 11Mbps

(note the bad interleaving, but that's not important, I think)

The resulting build, when configured into either adhoc or adhoc,flag0
mode can receive packets (tcpdump output is normal), and can send
multicast packets (DHCP, ARP, and ICMP6 NDP).  Unicast packets appear
on tcpdump output (and look fine, even with -e), but the light doesn't
blink and the router (1.6-stable) doesn't receive them.  netstat -i
shows oerrors for unicast tx packets.  wiconfig wi0 -o shows 0 tx
unicast frames/octets.  There was nothing in dmesg.

I am about to cvs up again and rebuild.

Reading the sources, in src/sys/dev/ic/wi.c, it seems that
ieee80211_encap might be failing.  Looking at that routine (in
src/sys/net80211/ieee80211_output.c), I see that not being in the node
table is fatal for unicast packets for nodes other than in
IEEE802111_M_STA mode.  But this is wrong; IBSS and AHDEMO both
operate without node tables, and the code below that fills in the
802.11 header expects ni to point to the 'bssid' node id.

I'll fix this, rebuild and see what happens.

-- 
        Greg Troxel <gdt@ir.bbn.com>