PERFORCE change 136616 for review

Sam Leffler sam at FreeBSD.org
Sat Mar 1 23:51:41 UTC 2008


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

Change 136616 by sam at sam_ebb on 2008/03/01 23:50:43

	o the channel field in the RXON cmd block (aka IWN_CMD_CONFIGURE)
	  is 16 bits, not 8; don't try to be cute just to be different
	o document and fillin more of the RXON cmd block

Affected files ...

.. //depot/projects/vap/sys/dev/iwn/if_iwn.c#5 edit
.. //depot/projects/vap/sys/dev/iwn/if_iwnreg.h#3 edit

Differences ...

==== //depot/projects/vap/sys/dev/iwn/if_iwn.c#5 (text+kox) ====

@@ -3424,7 +3424,7 @@
 	/* update adapter's configuration */
 	sc->config.associd = 0;
 	IEEE80211_ADDR_COPY(sc->config.bssid, ni->ni_bssid);
-	sc->config.chan = ieee80211_chan2ieee(ic, ni->ni_chan);
+	sc->config.chan = htole16(ieee80211_chan2ieee(ic, ni->ni_chan));
 	sc->config.flags = htole32(IWN_CONFIG_TSF);
 	if (IEEE80211_IS_CHAN_2GHZ(ni->ni_chan))
 		sc->config.flags |= htole32(IWN_CONFIG_AUTO | IWN_CONFIG_24GHZ);
@@ -3450,7 +3450,7 @@
 	   "ht_single 0x%x ht_dual 0x%x rxchain 0x%x "
 	   "myaddr %6D wlap %6D bssid %6D associd %d filter 0x%x\n",
 	   __func__,
-	   sc->config.chan, sc->config.mode, le32toh(sc->config.flags),
+	   le16toh(sc->config.chan), sc->config.mode, le32toh(sc->config.flags),
 	   sc->config.cck_mask, sc->config.ofdm_mask,
 	   sc->config.ht_single_mask, sc->config.ht_dual_mask,
 	   le16toh(sc->config.rxchain),
@@ -3549,7 +3549,7 @@
 	   "ht_single 0x%x ht_dual 0x%x rxchain 0x%x "
 	   "myaddr %6D wlap %6D bssid %6D associd %d filter 0x%x\n",
 	   __func__,
-	   sc->config.chan, sc->config.mode, le32toh(sc->config.flags),
+	   le16toh(sc->config.chan), sc->config.mode, le32toh(sc->config.flags),
 	   sc->config.cck_mask, sc->config.ofdm_mask,
 	   sc->config.ht_single_mask, sc->config.ht_dual_mask,
 	   le16toh(sc->config.rxchain),
@@ -3854,7 +3854,7 @@
 	IEEE80211_ADDR_COPY(sc->config.myaddr, ic->ic_myaddr);
 	IEEE80211_ADDR_COPY(sc->config.wlap, ic->ic_myaddr);
 	/* set default channel */
-	sc->config.chan = ieee80211_chan2ieee(ic, ic->ic_curchan);
+	sc->config.chan = htole16(ieee80211_chan2ieee(ic, ic->ic_curchan));
 	sc->config.flags = htole32(IWN_CONFIG_TSF);
 	if (IEEE80211_IS_CHAN_2GHZ(ic->ic_curchan))
 		sc->config.flags |= htole32(IWN_CONFIG_AUTO | IWN_CONFIG_24GHZ);
@@ -3890,7 +3890,7 @@
 	   "ht_single 0x%x ht_dual 0x%x rxchain 0x%x "
 	   "myaddr %6D wlap %6D bssid %6D associd %d filter 0x%x\n",
 	   __func__,
-	   sc->config.chan, sc->config.mode, le32toh(sc->config.flags),
+	   le16toh(sc->config.chan), sc->config.mode, le32toh(sc->config.flags),
 	   sc->config.cck_mask, sc->config.ofdm_mask,
 	   sc->config.ht_single_mask, sc->config.ht_dual_mask,
 	   le16toh(sc->config.rxchain),

==== //depot/projects/vap/sys/dev/iwn/if_iwnreg.h#3 (text+kox) ====

@@ -274,7 +274,7 @@
 	uint8_t	data[136];
 } __packed;
 
-/* structure for command IWN_CMD_CONFIGURE */
+/* structure for command IWN_CMD_CONFIGURE (NB: RXON) */
 struct iwn_config {
 	uint8_t		myaddr[IEEE80211_ADDR_LEN];
 	uint16_t	reserved1;
@@ -287,38 +287,39 @@
 #define IWN_MODE_STA		3
 #define IWN_MODE_IBSS		4
 #define IWN_MODE_MONITOR	6
-
-	uint8_t		reserved4;
+	uint8_t		unused4;	/* air propagation */
 	uint16_t	rxchain;
 #define IWN_RXCHAIN_ANTMSK_SHIFT	1
 #define IWN_RXCHAIN_FORCE_MIMO		(1 << 14)
-
 	uint8_t		ofdm_mask;	/* basic rates */
 	uint8_t		cck_mask;	/* basic rates */
 	uint16_t	associd;
 	uint32_t	flags;
-#define	IWN_CONFIG_24GHZ	0x00000001
-#define	IWN_CONFIG_CCK		0x00000002
-#define	IWN_CONFIG_AUTO		0x00000004
-#define	IWN_CONFIG_SHSLOT	0x00000010
-#define	IWN_CONFIG_SHPREAMBLE	0x00000020
-#define	IWN_CONFIG_NODIVERSITY	0x00000080
+#define	IWN_CONFIG_24GHZ	0x00000001	/* band */
+#define	IWN_CONFIG_CCK		0x00000002	/* modulation */
+#define	IWN_CONFIG_AUTO		0x00000004	/* 2.4-only auto-detect */
+#define	IWN_CONFIG_HTPROT	0x00000008	/* xmit with HT protection */
+#define	IWN_CONFIG_SHSLOT	0x00000010	/* short slot time */
+#define	IWN_CONFIG_SHPREAMBLE	0x00000020	/* short premable */
+#define	IWN_CONFIG_NODIVERSITY	0x00000080	/* disable antenna diversity */
 #define	IWN_CONFIG_ANTENNA_A	0x00000100
 #define	IWN_CONFIG_ANTENNA_B	0x00000200
+#define	IWN_CONFIG_RADAR	0x00001000	/* enable radar detect */
+#define	IWN_CONFIG_NARROW	0x00002000	/* MKK narrow band select */
 #define	IWN_CONFIG_TSF		0x00008000
 #define	IWN_CONFIG_HT		0x06400000
 #define	IWN_CONFIG_HT20		0x02000000
 #define	IWN_CONFIG_HT40U	0x04000000
 #define	IWN_CONFIG_HT40D	0x04400000
 	uint32_t	filter;
-#define IWN_FILTER_PROMISC	(1 << 0)
-#define IWN_FILTER_CTL		(1 << 1)
-#define IWN_FILTER_MULTICAST	(1 << 2)
-#define IWN_FILTER_NODECRYPT	(1 << 3)
-#define IWN_FILTER_BSS		(1 << 5)
-
-	uint8_t		chan;
-	uint8_t		reserved5;
+#define IWN_FILTER_PROMISC	(1 << 0)	/* pass all data frames */
+#define IWN_FILTER_CTL		(1 << 1)	/* pass ctl+mgt frames */
+#define IWN_FILTER_MULTICAST	(1 << 2)	/* pass multi-cast frames */
+#define IWN_FILTER_NODECRYPT	(1 << 3)	/* pass unicast undecrypted */
+#define IWN_FILTER_BSS		(1 << 5)	/* station is associated */
+#define IWN_FILTER_ALLBEACONS	(1 << 6)	/* pass overlapping bss beacons
+						   (must be associated) */
+	uint16_t	chan;		/* IEEE channel # of control/primary */
 	uint8_t		ht_single_mask;	/* single-stream basic rates */
 	uint8_t		ht_dual_mask;	/* dual-stream basic rates */
 } __packed;


More information about the p4-projects mailing list