summaryrefslogtreecommitdiffstats
path: root/sys/net80211/ieee80211_input.c
diff options
context:
space:
mode:
authorsam <sam@FreeBSD.org>2005-06-10 01:29:21 +0000
committersam <sam@FreeBSD.org>2005-06-10 01:29:21 +0000
commit7b2e90955c0ee333b799228a9ceb542ec7ba2613 (patch)
treeb9de1d3c07d802ff2371e1a72da686901510cbc8 /sys/net80211/ieee80211_input.c
parentaa4ecbabe57f2faf89abfd7436f8cb2f52fd8f65 (diff)
downloadFreeBSD-src-7b2e90955c0ee333b799228a9ceb542ec7ba2613.zip
FreeBSD-src-7b2e90955c0ee333b799228a9ceb542ec7ba2613.tar.gz
record tstamp from beacons received in station mode when associated;
this is needed by drivers that want to resync their timers based on the tsf of the last recv'd beacon frame
Diffstat (limited to 'sys/net80211/ieee80211_input.c')
-rw-r--r--sys/net80211/ieee80211_input.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/sys/net80211/ieee80211_input.c b/sys/net80211/ieee80211_input.c
index 9f648f6..2e21b1a 100644
--- a/sys/net80211/ieee80211_input.c
+++ b/sys/net80211/ieee80211_input.c
@@ -1841,6 +1841,9 @@ ieee80211_recv_mgmt(struct ieee80211com *ic, struct mbuf *m0,
ni->ni_associd != 0 &&
((ic->ic_flags & IEEE80211_F_SCAN) == 0 ||
IEEE80211_ADDR_EQ(wh->i_addr2, ni->ni_bssid))) {
+ /* record tsf of last beacon */
+ memcpy(ni->ni_tstamp.data, tstamp,
+ sizeof(ni->ni_tstamp));
if (ni->ni_erp != erp) {
IEEE80211_DPRINTF(ic, IEEE80211_MSG_ASSOC,
"[%s] erp change: was 0x%x, now 0x%x\n",
OpenPOWER on IntegriCloud