PERFORCE change 114939 for review

Sam Leffler sam at FreeBSD.org
Sat Feb 24 00:16:12 UTC 2007


http://perforce.freebsd.org/chv.cgi?CH=114939

Change 114939 by sam at sam_ebb on 2007/02/24 00:15:27

	change ieee80211_fix_rate to take a rate set instead of
	implicitly using ni_rates; for 11n we're going to supply
	something different

Affected files ...

.. //depot/projects/wifi/sys/net80211/ieee80211_input.c#90 edit
.. //depot/projects/wifi/sys/net80211/ieee80211_node.c#82 edit
.. //depot/projects/wifi/sys/net80211/ieee80211_proto.c#47 edit
.. //depot/projects/wifi/sys/net80211/ieee80211_proto.h#30 edit

Differences ...

==== //depot/projects/wifi/sys/net80211/ieee80211_input.c#90 (text+ko) ====

@@ -954,7 +954,7 @@
 		memcpy(rs->rs_rates + rs->rs_nrates, xrates+2, nxrates);
 		rs->rs_nrates += nxrates;
 	}
-	return ieee80211_fix_rate(ni, flags);
+	return ieee80211_fix_rate(ni, rs, flags);
 }
 
 static void

==== //depot/projects/wifi/sys/net80211/ieee80211_node.c#82 (text+ko) ====

@@ -404,7 +404,7 @@
 		if (ni->ni_capinfo & IEEE80211_CAPINFO_PRIVACY)
 			return 0;
 	}
-	rate = ieee80211_fix_rate(ni,
+	rate = ieee80211_fix_rate(ni, &ni->ni_rates,
 	    IEEE80211_F_JOIN | IEEE80211_F_DONEGO | IEEE80211_F_DOFRATE);
 	if (rate & IEEE80211_RATE_BASIC)
 		return 0;
@@ -445,7 +445,7 @@
 		if (ni->ni_capinfo & IEEE80211_CAPINFO_PRIVACY)
 			fail |= 0x04;
 	}
-	rate = ieee80211_fix_rate(ni,
+	rate = ieee80211_fix_rate(ni, &ni->ni_rates,
 	     IEEE80211_F_JOIN | IEEE80211_F_DONEGO | IEEE80211_F_DOFRATE);
 	if (rate & IEEE80211_RATE_BASIC)
 		fail |= 0x08;
@@ -565,7 +565,8 @@
 	 * Delete unusable rates; we've already checked
 	 * that the negotiated rate set is acceptable.
 	 */
-	ieee80211_fix_rate(ic->ic_bss, IEEE80211_F_DODEL | IEEE80211_F_JOIN);
+	ieee80211_fix_rate(ic->ic_bss, &ic->ic_bss->ni_rates,
+		IEEE80211_F_DODEL | IEEE80211_F_JOIN);
 
 	ic->ic_bsschan = selbs->ni_chan;
 	ic->ic_curchan = ic->ic_bsschan;

==== //depot/projects/wifi/sys/net80211/ieee80211_proto.c#47 (text+ko) ====

@@ -346,21 +346,20 @@
 }
 
 int
-ieee80211_fix_rate(struct ieee80211_node *ni, int flags)
+ieee80211_fix_rate(struct ieee80211_node *ni,
+	struct ieee80211_rateset *nrs, int flags)
 {
 #define	RV(v)	((v) & IEEE80211_RATE_VAL)
 	struct ieee80211com *ic = ni->ni_ic;
 	int i, j, rix, error;
 	int okrate, badrate, fixedrate;
 	const struct ieee80211_rateset *srs;
-	struct ieee80211_rateset *nrs;
 	u_int8_t r;
 
 	error = 0;
 	okrate = badrate = 0;
 	fixedrate = IEEE80211_FIXED_RATE_NONE;
 	srs = ieee80211_get_suprates(ic, ni->ni_chan);
-	nrs = &ni->ni_rates;
 	for (i = 0; i < nrs->rs_nrates; ) {
 		if (flags & IEEE80211_F_DOSORT) {
 			/*

==== //depot/projects/wifi/sys/net80211/ieee80211_proto.h#30 (text+ko) ====

@@ -185,7 +185,8 @@
 #define	IEEE80211_F_DONEGO	0x00000004	/* calc negotiated rate */
 #define	IEEE80211_F_DODEL	0x00000008	/* delete ignore rate */
 #define	IEEE80211_F_JOIN	0x00000010	/* sta joining our bss */
-int	ieee80211_fix_rate(struct ieee80211_node *, int);
+int	ieee80211_fix_rate(struct ieee80211_node *,
+		struct ieee80211_rateset *, int);
 
 /*
  * WME/WMM support.


More information about the p4-projects mailing list