svn commit: r193541 - head/sys/net80211

Sam Leffler sam at FreeBSD.org
Fri Jun 5 23:10:32 UTC 2009


Author: sam
Date: Fri Jun  5 23:10:30 2009
New Revision: 193541
URL: http://svn.freebsd.org/changeset/base/193541

Log:
  add tid param to ieee80211_notify_replay_failure to get the correct rsc

Modified:
  head/sys/net80211/ieee80211_crypto.h
  head/sys/net80211/ieee80211_crypto_ccmp.c
  head/sys/net80211/ieee80211_crypto_tkip.c
  head/sys/net80211/ieee80211_freebsd.c

Modified: head/sys/net80211/ieee80211_crypto.h
==============================================================================
--- head/sys/net80211/ieee80211_crypto.h	Fri Jun  5 22:36:17 2009	(r193540)
+++ head/sys/net80211/ieee80211_crypto.h	Fri Jun  5 23:10:30 2009	(r193541)
@@ -236,7 +236,7 @@ ieee80211_crypto_resetkey(struct ieee802
  */
 void	ieee80211_notify_replay_failure(struct ieee80211vap *,
 		const struct ieee80211_frame *, const struct ieee80211_key *,
-		uint64_t rsc);
+		uint64_t rsc, int tid);
 void	ieee80211_notify_michael_failure(struct ieee80211vap *,
 		const struct ieee80211_frame *, u_int keyix);
 #endif /* defined(__KERNEL__) || defined(_KERNEL) */

Modified: head/sys/net80211/ieee80211_crypto_ccmp.c
==============================================================================
--- head/sys/net80211/ieee80211_crypto_ccmp.c	Fri Jun  5 22:36:17 2009	(r193540)
+++ head/sys/net80211/ieee80211_crypto_ccmp.c	Fri Jun  5 23:10:30 2009	(r193541)
@@ -230,7 +230,7 @@ ccmp_decap(struct ieee80211_key *k, stru
 		/*
 		 * Replay violation.
 		 */
-		ieee80211_notify_replay_failure(vap, wh, k, pn);
+		ieee80211_notify_replay_failure(vap, wh, k, pn, tid);
 		vap->iv_stats.is_rx_ccmpreplay++;
 		return 0;
 	}

Modified: head/sys/net80211/ieee80211_crypto_tkip.c
==============================================================================
--- head/sys/net80211/ieee80211_crypto_tkip.c	Fri Jun  5 22:36:17 2009	(r193540)
+++ head/sys/net80211/ieee80211_crypto_tkip.c	Fri Jun  5 23:10:30 2009	(r193541)
@@ -284,7 +284,7 @@ tkip_decap(struct ieee80211_key *k, stru
 		/*
 		 * Replay violation; notify upper layer.
 		 */
-		ieee80211_notify_replay_failure(vap, wh, k, ctx->rx_rsc);
+		ieee80211_notify_replay_failure(vap, wh, k, ctx->rx_rsc, tid);
 		vap->iv_stats.is_rx_tkipreplay++;
 		return 0;
 	}

Modified: head/sys/net80211/ieee80211_freebsd.c
==============================================================================
--- head/sys/net80211/ieee80211_freebsd.c	Fri Jun  5 22:36:17 2009	(r193540)
+++ head/sys/net80211/ieee80211_freebsd.c	Fri Jun  5 23:10:30 2009	(r193541)
@@ -528,14 +528,14 @@ ieee80211_notify_scan_done(struct ieee80
 void
 ieee80211_notify_replay_failure(struct ieee80211vap *vap,
 	const struct ieee80211_frame *wh, const struct ieee80211_key *k,
-	u_int64_t rsc)
+	u_int64_t rsc, int tid)
 {
 	struct ifnet *ifp = vap->iv_ifp;
 
 	IEEE80211_NOTE_MAC(vap, IEEE80211_MSG_CRYPTO, wh->i_addr2,
 	    "%s replay detected <rsc %ju, csc %ju, keyix %u rxkeyix %u>",
 	    k->wk_cipher->ic_name, (intmax_t) rsc,
-	    (intmax_t) k->wk_keyrsc[IEEE80211_NONQOS_TID],
+	    (intmax_t) k->wk_keyrsc[tid],
 	    k->wk_keyix, k->wk_rxkeyix);
 
 	if (ifp != NULL) {		/* NB: for cipher test modules */
@@ -548,7 +548,7 @@ ieee80211_notify_replay_failure(struct i
 			iev.iev_keyix = k->wk_rxkeyix;
 		else
 			iev.iev_keyix = k->wk_keyix;
-		iev.iev_keyrsc = k->wk_keyrsc[0];	/* XXX need tid */
+		iev.iev_keyrsc = k->wk_keyrsc[tid];
 		iev.iev_rsc = rsc;
 		CURVNET_SET(ifp->if_vnet);
 		rt_ieee80211msg(ifp, RTM_IEEE80211_REPLAY, &iev, sizeof(iev));


More information about the svn-src-head mailing list