Subject: Re: NetBSD 2.0 + Atheros monitor mode + tcpdump = no 802.11 ACKs?
To: David Young <dyoung@pobox.com>
From: Sam Leffler <sam@errno.com>
List: tech-net
Date: 11/10/2004 10:14:27
On Wednesday 10 November 2004 08:24 am, David Young wrote:
> On Wed, Nov 10, 2004 at 09:30:56AM -0500, David Hudak wrote:
> > Hi,
> >
> > Question for the group:  I am using NetBSD 2.0 with an Atheros 5212
> > radio.  I put the radio in monitor mode and do tcpdump -D IEEE802_11...
> > I have seen the following...
> > 1.  beacons
> > 2.  probe requests, probe responses
> > 3.  auth requests, auth responses
> > 4.  association requests, association responses
> > 5.  data frames
> >
> > But, I have not seen any 802.11 ACKs.  Is this expected behavior?  I
> > know that they are there, since a sniff with KisMAC using an original
> > Apple Airport (i.e., Orinoco) card shows them.
>
> That's a bug.  There are a few problems, beginning with this check
> in ath_rx_proc,
>
>                 len = ds->ds_rxstat.rs_datalen;
>                 if (len < IEEE80211_MIN_LEN) {
>                         DPRINTF(ATH_DEBUG_RECV, ("%s: short packet %d\n",
>                                 __func__, len));
>                         sc->sc_stats.ast_rx_tooshort++;
>                         goto rx_next;
>                 }
>
> It looks to me like that check can be postponed until a few lines later
> when the WEP header is stripped.  These days, it's ok to pass a short
> frame to net80211, which taps the IEEE802_11 DLT.
>
> (Now that I am looking at ath_rx_proc, I'd sure like to revamp its
> radiotap section.)

This all works on Linux and/or my freebsd p4 tree.  If you're not in 
promiscuous mode be sure to also enable rx of control frames.  But presumably 
you did this already if you're handling PSPOLL frames.

 Sam