[Prism54-devel] Re: Spurious disassociations in prismGT STA <-> prism2.5 AP setup

vda@port.imtp.ilyichevsk.odessa.ua vda@port.imtp.ilyichevsk.odessa.ua
Sun, 8 Feb 2004 19:53:11 +0200


--Boundary-00=_HenJAXfPWTVJatU
Content-Type: text/plain;
  charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline

On Sunday 08 February 2004 18:22, Jouni Malinen wrote:
> On Sun, Feb 08, 2004 at 01:29:45PM +0200, vda@port.imtp.ilyichevsk.odessa=
=2Eua wrote:
> > I setup another prism54 card in monitor mode.
> > To my joy, both tcpdump and wlansniff (it's
> > coming with hostap) were able to capture traffic.
> > I have evidence in the form of tcpdump logs
> > that it's prism54 to blame. It sends disassociation
> > requests. You may find log below sig.
>
> It would be useful to get the transmit rate of the packets from the
> prism54 station. I haven't used it in monitor mode, but I would assume
> this information would be available somehow. =A0If any of the frames it
> sends is using ERP rates (i.e., rates not included in IEEE 802.11b),
> Prism2.5 is not going to see them..
>
> In addition, it would be useful to increase the snap length of the
> sniffer (e.g., add -s 2000 on the tcpdump command line).

In newer tcpdumps, -s0 means "snap entire packet". I use that.
But my tcpdump was too old :(

> > NB: 0:4:e2:64:15:e5 is MAC addr of the STA
> >
> > 12:14:39.548175 DA:0:5:5d:fa:58:45 SA:0:4:e2:64:15:e5
> > BSSID:0:5:5d:fa:58:45 [|llc] 12:14:39.548485 RA:0:4:e2:64:15:e5 [|802.1=
1]
>
> This might be normal unicast data frame followed by ACK from the AP.
>
> > 12:14:39.563854 BSSID:ff:ff:ff:ff:ff:ff DA:ff:ff:ff:ff:ff:ff
> > SA:0:4:e2:64:15:e5 [|802.11] 12:14:39.595005 BSSID:ff:ff:ff:ff:ff:ff
> > DA:ff:ff:ff:ff:ff:ff SA:0:4:e2:64:15:e5 [|802.11]
>
> I would guess these are broadcast Probe Requests, but without seeing the
> full frame (larger snap length) it is a bit difficult to know for sure.

That was tcpdump-3.7.1. It was buggy wrt 802.11
I'm compiling tcpdump-3.8.1....

> > 12:14:39.625551 DA:0:5:5d:fa:58:45 SA:0:4:e2:64:15:e5
> > BSSID:0:5:5d:fa:58:45 [|llc] 12:14:39.625863 RA:0:4:e2:64:15:e5 [|802.1=
1]
>
> Another data frame + ACK
>
> > 12:14:41.711844 BSSID:0:5:5d:fa:58:45 DA:0:5:5d:fa:58:45
> > SA:0:4:e2:64:15:e5 Disassociation: Disassociated because sending station
> > is leaving (or has left) BSS
>
> Disassociation by the STA. Note that this happened about two seconds
> after the possible Probe Requests. I didn't see anything that would be a
> Probe Response from the AP to the STA. If this was indeed the case, STA
> firmware might have assumed that the AP is out of range. I don't know
> why it would disassociate in that case, but that may be possible.
>
> It would be useful to get the TX rate of the frames I assumed were Probe
> Request. In addition, the full contents of those frames would be useful.
> Maybe writing a dump file with tcpdump (-s 2000 -w filename) and making
> it available would be easiest way of doing this. If you cannot get
> transmit rates with Prism54 driver to the sniffer log, you could try
> running another Prism2/2.5/3 card in monitor mode and verify whether it
> sees those Probe Request like frames.
>
> > 12:14:41.718756 BSSID:ff:ff:ff:ff:ff:ff DA:ff:ff:ff:ff:ff:ff
> > SA:0:4:e2:64:15:e5 [|802.11] 12:14:41.719232 BSSID:0:5:5d:fa:58:45
> > DA:0:4:e2:64:15:e5 SA:0:5:5d:fa:58:45 [|802.11]
>
> This here might actually be Probe Request & Probe Response (again,
> larger snap length would be required). I would also need to get full
> sniffer log, not just filtered one, to verify that ACK frame was sent
> for the Probe Response.
>
> > 12:14:42.638426 BSSID:ff:ff:ff:ff:ff:ff DA:ff:ff:ff:ff:ff:ff
> > SA:0:4:e2:64:15:e5 [|802.11] 12:14:42.712153 BSSID:ff:ff:ff:ff:ff:ff
> > DA:ff:ff:ff:ff:ff:ff SA:0:4:e2:64:15:e5 [|802.11] 12:14:42.740828
> > BSSID:ff:ff:ff:ff:ff:ff DA:ff:ff:ff:ff:ff:ff SA:0:4:e2:64:15:e5 [|802.1=
1]
> > 12:14:42.771550 BSSID:ff:ff:ff:ff:ff:ff DA:ff:ff:ff:ff:ff:ff
> > SA:0:4:e2:64:15:e5 [|802.11] 12:14:42.802271 BSSID:ff:ff:ff:ff:ff:ff
> > DA:ff:ff:ff:ff:ff:ff SA:0:4:e2:64:15:e5 [|802.11] 12:14:42.833013
> > BSSID:ff:ff:ff:ff:ff:ff DA:ff:ff:ff:ff:ff:ff SA:0:4:e2:64:15:e5 [|802.1=
1]
> > 12:14:42.833621 BSSID:0:5:5d:fa:58:45 DA:0:4:e2:64:15:e5
> > SA:0:5:5d:fa:58:45 [|802.11] 12:14:42.835219 BSSID:0:5:5d:fa:58:45
> > DA:0:4:e2:64:15:e5 SA:0:5:5d:fa:58:45 [|802.11]
>
> It looks like there could be some issues in low-level frame
> sending/receiving. This could be sequence of many Probe Requests and
> then Probe Response with one retry (or response to anothe request; not
> enough data to figure that out).

Thank you for your analysis.

I made a couple of logs with new tcpdump-3.8.1 and sent them to you.
Got a bounce from list due to excess size. Sorry. Resending
gzipped.

t.raw:
# tcpdump -nleieth1 -s2000 -vvv -w t.raw ether host 0:4:e2:64:15:e5

t.log:
# tcpdump -nleieth1 -s0 -vvv 2>&1 | grep '0*0:0*4:e2:64:15:e5' >t.log
=2D-
vda

--Boundary-00=_HenJAXfPWTVJatU
Content-Type: application/x-gzip;
  name="t.log.gz"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
	filename="t.log.gz"

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

--Boundary-00=_HenJAXfPWTVJatU
Content-Type: application/x-gzip;
  name="t.raw.gz"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
	filename="t.raw.gz"

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
lZvoDpazStuj/w+//q887pMAAA==

--Boundary-00=_HenJAXfPWTVJatU--