PERFORCE change 114518 for review

Sam Leffler sam at FreeBSD.org
Wed Feb 14 23:04:31 UTC 2007


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

Change 114518 by sam at sam_ebb on 2007/02/14 23:04:16

	extract some error handling into separate routines; they
	will be used multiple times when 11n support comes in

Affected files ...

.. //depot/projects/wifi/sys/net80211/ieee80211_input.c#86 edit

Differences ...

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

@@ -1945,6 +1945,36 @@
 	    time_after(ticks, ic->ic_lastdata + ic->ic_bgscanidle));
 }
 
+static void
+ratesetmismatch(struct ieee80211_node *ni, const struct ieee80211_frame *wh,
+	int reassoc, int resp, const char *tag, int rate)
+{
+	struct ieee80211com *ic = ni->ni_ic;
+
+	IEEE80211_DPRINTF(ic, IEEE80211_MSG_ANY,
+	    "[%s] deny %s request, %srate set mismatch, rate 0x%x\n",
+	    ether_sprintf(wh->i_addr2),
+	    reassoc ? "reassoc" : "assoc", tag, rate);
+	IEEE80211_SEND_MGMT(ic, ni, resp, IEEE80211_STATUS_BASIC_RATE);
+	ieee80211_node_leave(ic, ni);
+	ic->ic_stats.is_rx_assoc_norate++;
+}
+
+static void
+capinfomismatch(struct ieee80211_node *ni, const struct ieee80211_frame *wh,
+	int reassoc, int resp, const char *tag, int capinfo)
+{
+	struct ieee80211com *ic = ni->ni_ic;
+
+	IEEE80211_DPRINTF(ic, IEEE80211_MSG_ANY,
+	    "[%s] deny %s request, %s mismatch 0x%x\n",
+	    ether_sprintf(wh->i_addr2),
+	    reassoc ? "reassoc" : "assoc", tag, capinfo);
+	IEEE80211_SEND_MGMT(ic, ni, resp, IEEE80211_STATUS_CAPINFO);
+	ieee80211_node_leave(ic, ni);
+	ic->ic_stats.is_rx_assoc_capmismatch++;
+}
+
 void
 ieee80211_recv_mgmt(struct ieee80211com *ic, struct mbuf *m0,
 	struct ieee80211_node *ni,
@@ -2582,14 +2612,8 @@
 		}
 		/* NB: 802.11 spec says to ignore station's privacy bit */
 		if ((capinfo & IEEE80211_CAPINFO_ESS) == 0) {
-			IEEE80211_DPRINTF(ic, IEEE80211_MSG_ANY,
-			    "[%s] deny %s request, capability mismatch 0x%x\n",
-			    ether_sprintf(wh->i_addr2),
-			    reassoc ? "reassoc" : "assoc", capinfo);
-			IEEE80211_SEND_MGMT(ic, ni, resp,
-				IEEE80211_STATUS_CAPINFO);
-			ieee80211_node_leave(ic, ni);
-			ic->ic_stats.is_rx_assoc_capmismatch++;
+			capinfomismatch(ni, wh, reassoc, resp,
+			    "capability", capinfo);
 			return;
 		}
 		rate = ieee80211_setup_rates(ni, rates, xrates,
@@ -2603,14 +2627,7 @@
 		 */
 		if ((rate & IEEE80211_RATE_BASIC) ||
 		    ((ic->ic_flags & IEEE80211_F_PUREG) && rate < 48)) {
-			IEEE80211_DPRINTF(ic, IEEE80211_MSG_ANY,
-			    "[%s] deny %s request, rate set mismatch, rate 0x%x\n",
-			    ether_sprintf(wh->i_addr2),
-			    reassoc ? "reassoc" : "assoc", rate);
-			IEEE80211_SEND_MGMT(ic, ni, resp,
-				IEEE80211_STATUS_BASIC_RATE);
-			ieee80211_node_leave(ic, ni);
-			ic->ic_stats.is_rx_assoc_norate++;
+			ratesetmismatch(ni, wh, reassoc, resp, "11g", rate);
 			return;
 		}
 		ni->ni_rssi = rssi;


More information about the p4-projects mailing list