Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 7 Apr 2019 12:57:39 +0000 (UTC)
From:      Andriy Voskoboinyk <avos@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org
Subject:   svn commit: r346003 - in stable: 11/sys/dev/usb/wlan 12/sys/dev/usb/wlan
Message-ID:  <201904071257.x37CvdSD022017@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: avos
Date: Sun Apr  7 12:57:38 2019
New Revision: 346003
URL: https://svnweb.freebsd.org/changeset/base/346003

Log:
  MFC r345729:
  urtw(4): export TSF timestamp for received frames via radiotap
  
  Was tested with Netgear WG111 v3 (RTL8187B), STA mode.

Modified:
  stable/12/sys/dev/usb/wlan/if_urtw.c
  stable/12/sys/dev/usb/wlan/if_urtwvar.h
Directory Properties:
  stable/12/   (props changed)

Changes in other areas also in this revision:
Modified:
  stable/11/sys/dev/usb/wlan/if_urtw.c
  stable/11/sys/dev/usb/wlan/if_urtwvar.h
Directory Properties:
  stable/11/   (props changed)

Modified: stable/12/sys/dev/usb/wlan/if_urtw.c
==============================================================================
--- stable/12/sys/dev/usb/wlan/if_urtw.c	Sun Apr  7 12:20:17 2019	(r346002)
+++ stable/12/sys/dev/usb/wlan/if_urtw.c	Sun Apr  7 12:57:38 2019	(r346003)
@@ -3932,6 +3932,7 @@ urtw_rxeof(struct usb_xfer *xfer, struct urtw_data *da
 	struct urtw_softc *sc = data->sc;
 	struct ieee80211com *ic = &sc->sc_ic;
 	uint8_t noise = 0, rate;
+	uint64_t mactime;
 
 	usbd_xfer_status(xfer, &actlen, NULL, NULL, NULL);
 
@@ -3951,6 +3952,9 @@ urtw_rxeof(struct usb_xfer *xfer, struct urtw_data *da
 		/* XXX correct? */
 		rssi = rx->rssi & URTW_RX_RSSI_MASK;
 		noise = rx->noise;
+
+		if (ieee80211_radiotap_active(ic))
+			mactime = rx->mactime;
 	} else {
 		struct urtw_8187l_rxhdr *rx;
 
@@ -3967,6 +3971,9 @@ urtw_rxeof(struct usb_xfer *xfer, struct urtw_data *da
 		/* XXX correct? */
 		rssi = rx->rssi & URTW_RX_8187L_RSSI_MASK;
 		noise = rx->noise;
+
+		if (ieee80211_radiotap_active(ic))
+			mactime = rx->mactime;
 	}
 
 	if (flen < IEEE80211_ACK_LEN)
@@ -3986,6 +3993,7 @@ urtw_rxeof(struct usb_xfer *xfer, struct urtw_data *da
 	if (ieee80211_radiotap_active(ic)) {
 		struct urtw_rx_radiotap_header *tap = &sc->sc_rxtap;
 
+		tap->wr_tsf = mactime;
 		tap->wr_flags = 0;
 		tap->wr_dbm_antsignal = (int8_t)rssi;
 	}

Modified: stable/12/sys/dev/usb/wlan/if_urtwvar.h
==============================================================================
--- stable/12/sys/dev/usb/wlan/if_urtwvar.h	Sun Apr  7 12:20:17 2019	(r346002)
+++ stable/12/sys/dev/usb/wlan/if_urtwvar.h	Sun Apr  7 12:57:38 2019	(r346003)
@@ -55,6 +55,7 @@ typedef STAILQ_HEAD(, urtw_data) urtw_datahead;
 
 struct urtw_rx_radiotap_header {
 	struct ieee80211_radiotap_header wr_ihdr;
+	uint64_t	wr_tsf;
 	uint8_t		wr_flags;
 	uint8_t		wr_pad;
 	uint16_t	wr_chan_freq;
@@ -63,7 +64,8 @@ struct urtw_rx_radiotap_header {
 } __packed __aligned(8);
 
 #define URTW_RX_RADIOTAP_PRESENT					\
-	((1 << IEEE80211_RADIOTAP_FLAGS) |				\
+	((1 << IEEE80211_RADIOTAP_TSFT) |				\
+	 (1 << IEEE80211_RADIOTAP_FLAGS) |				\
 	 (1 << IEEE80211_RADIOTAP_CHANNEL) |				\
 	 (1 << IEEE80211_RADIOTAP_DBM_ANTSIGNAL))
 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201904071257.x37CvdSD022017>