Please note: This project is no longer active. The website is kept online for historic purposes only.
If you´re looking for a Linux driver for your Atheros WLAN device, you should continue here .

Ticket #1429 (new defect)

Opened 14 years ago

Last modified 14 years ago

Radiotap MAC time doesn't point to begin of frame

Reported by: hrogge@gmx.net Assigned to:
Priority: major Milestone:
Component: madwifi: other Version: trunk
Keywords: Cc:
Patch is attached: 0 Pending:

Description (Last modified by mrenzmann)

I noticed that the radiotap header MAC field does not point to the begin of the first bit of the package.

I attached a short capture file with a packet plus ack. As you can see the ack come just a few hundred microseconds after the data package, but the data package needs over a millisecond to transmit. Could it be that the MAC does point to the end of the packet (like it is in the PrismHeader?) ?

I'm using a madwifi directly from your SVN:

Path: trunk
URL: http://svn.madwifi.org/trunk
Repository Root: http://svn.madwifi.org
Repository UUID: 0192ed92-7a03-0410-a25b-9323aeb14dbd
Revision: 2437
Last Changed Author: mtaylor
Last Changed Rev: 2437
Last Changed Date: 2007-06-12 00:42:40 +0200 (Tue, 12 Jun 2007)

Attachments

error.cap (1.6 kB) - added by hrogge@gmx.net on 07/03/07 15:41:31.
error_new.cap (1.6 kB) - added by hrogge@gmx.net on 07/03/07 15:43:20.

Change History

07/03/07 15:41:31 changed by hrogge@gmx.net

  • attachment error.cap added.

07/03/07 15:43:20 changed by hrogge@gmx.net

  • attachment error_new.cap added.

07/04/07 06:48:39 changed by mrenzmann

  • description changed.

07/10/07 09:09:57 changed by hrogge@gmx.net

This patch might be a sollution for the MAC-time problem of the radiotap header.

--- a/net80211/ieee80211_monitor.c
+++ b/net80211/ieee80211_monitor.c
@@ -539,7 +539,7 @@ ieee80211_input_monitor(struct ieee80211com *ic, struct sk_buff *skb,
                                th->wr_antenna = antenna;
                                th->wr_antsignal = rssi;

-                               th->wr_tsft = cpu_to_le64(mactime);
+                               th->wr_tsft = cpu_to_le64(mactime - skb->len * 8 / ieeerate * 2);
                        }
                        break;
                }