svn commit: r188799 - in projects/vap7/sys: . contrib/pf dev dev/ath dev/ath/ath_hal dev/ath/ath_hal/ar5210 dev/ath/ath_hal/ar5211 dev/ath/ath_hal/ar5212 dev/ath/ath_hal/ar5312 dev/ath/ath_hal/ar54...

Sam Leffler sam at FreeBSD.org
Wed Feb 18 21:52:15 PST 2009


Author: sam
Date: Thu Feb 19 05:52:14 2009
New Revision: 188799
URL: http://svn.freebsd.org/changeset/base/188799

Log:
  merge r188782:
      Add modes for 1/2 and 1/4-width channels so we have separate roaming
      and xmit parameters.  This makes it possible to use tdma on fractional
      channels.

Modified:
  projects/vap7/sys/   (props changed)
  projects/vap7/sys/contrib/pf/   (props changed)
  projects/vap7/sys/dev/   (props changed)
  projects/vap7/sys/dev/ath/   (props changed)
  projects/vap7/sys/dev/ath/ath_hal/   (props changed)
  projects/vap7/sys/dev/ath/ath_hal/ar5210/   (props changed)
  projects/vap7/sys/dev/ath/ath_hal/ar5211/   (props changed)
  projects/vap7/sys/dev/ath/ath_hal/ar5212/   (props changed)
  projects/vap7/sys/dev/ath/ath_hal/ar5312/   (props changed)
  projects/vap7/sys/dev/ath/ath_hal/ar5416/   (props changed)
  projects/vap7/sys/dev/cxgb/   (props changed)
  projects/vap7/sys/dev/usb2/   (props changed)
  projects/vap7/sys/i386/conf/USB2   (props changed)
  projects/vap7/sys/modules/usb2/   (props changed)
  projects/vap7/sys/net80211/   (props changed)
  projects/vap7/sys/net80211/_ieee80211.h
  projects/vap7/sys/net80211/ieee80211.c
  projects/vap7/sys/net80211/ieee80211_ioctl.c
  projects/vap7/sys/net80211/ieee80211_node.c
  projects/vap7/sys/net80211/ieee80211_proto.c
  projects/vap7/sys/net80211/ieee80211_regdomain.c
  projects/vap7/sys/net80211/ieee80211_scan.c
  projects/vap7/sys/net80211/ieee80211_scan_sta.c
  projects/vap7/sys/net80211/ieee80211_tdma.c

Modified: projects/vap7/sys/net80211/_ieee80211.h
==============================================================================
--- projects/vap7/sys/net80211/_ieee80211.h	Thu Feb 19 05:51:29 2009	(r188798)
+++ projects/vap7/sys/net80211/_ieee80211.h	Thu Feb 19 05:52:14 2009	(r188799)
@@ -66,8 +66,10 @@ enum ieee80211_phymode {
 	IEEE80211_MODE_STURBO_A	= 7,	/* 5GHz, OFDM, 2x clock, static */
 	IEEE80211_MODE_11NA	= 8,	/* 5GHz, w/ HT */
 	IEEE80211_MODE_11NG	= 9,	/* 2GHz, w/ HT */
+	IEEE80211_MODE_HALF	= 10,	/* OFDM, 1/2x clock */
+	IEEE80211_MODE_QUARTER	= 11,	/* OFDM, 1/4x clock */
 };
-#define	IEEE80211_MODE_MAX	(IEEE80211_MODE_11NG+1)
+#define	IEEE80211_MODE_MAX	(IEEE80211_MODE_QUARTER+1)
 
 /*
  * Operating mode.  Devices do not necessarily support

Modified: projects/vap7/sys/net80211/ieee80211.c
==============================================================================
--- projects/vap7/sys/net80211/ieee80211.c	Thu Feb 19 05:51:29 2009	(r188798)
+++ projects/vap7/sys/net80211/ieee80211.c	Thu Feb 19 05:52:14 2009	(r188799)
@@ -58,6 +58,8 @@ const char *ieee80211_phymode_name[IEEE8
 	[IEEE80211_MODE_TURBO_A]  = "turboA",
 	[IEEE80211_MODE_TURBO_G]  = "turboG",
 	[IEEE80211_MODE_STURBO_A] = "sturboA",
+	[IEEE80211_MODE_HALF]	  = "half",
+	[IEEE80211_MODE_QUARTER]  = "quarter",
 	[IEEE80211_MODE_11NA]	  = "11na",
 	[IEEE80211_MODE_11NG]	  = "11ng",
 };
@@ -112,7 +114,7 @@ static void
 ieee80211_chan_init(struct ieee80211com *ic)
 {
 #define	DEFAULTRATES(m, def) do { \
-	if (isset(ic->ic_modecaps, m) && ic->ic_sup_rates[m].rs_nrates == 0) \
+	if (ic->ic_sup_rates[m].rs_nrates == 0) \
 		ic->ic_sup_rates[m] = def; \
 } while (0)
 	struct ieee80211_channel *c;
@@ -159,6 +161,10 @@ ieee80211_chan_init(struct ieee80211com 
 			setbit(ic->ic_modecaps, IEEE80211_MODE_TURBO_G);
 		if (IEEE80211_IS_CHAN_ST(c))
 			setbit(ic->ic_modecaps, IEEE80211_MODE_STURBO_A);
+		if (IEEE80211_IS_CHAN_HALF(c))
+			setbit(ic->ic_modecaps, IEEE80211_MODE_HALF);
+		if (IEEE80211_IS_CHAN_QUARTER(c))
+			setbit(ic->ic_modecaps, IEEE80211_MODE_QUARTER);
 		if (IEEE80211_IS_CHAN_HTA(c))
 			setbit(ic->ic_modecaps, IEEE80211_MODE_11NA);
 		if (IEEE80211_IS_CHAN_HTG(c))
@@ -185,6 +191,8 @@ ieee80211_chan_init(struct ieee80211com 
 	DEFAULTRATES(IEEE80211_MODE_TURBO_A,	 ieee80211_rateset_11a);
 	DEFAULTRATES(IEEE80211_MODE_TURBO_G,	 ieee80211_rateset_11g);
 	DEFAULTRATES(IEEE80211_MODE_STURBO_A,	 ieee80211_rateset_11a);
+	DEFAULTRATES(IEEE80211_MODE_HALF,	 ieee80211_rateset_half);
+	DEFAULTRATES(IEEE80211_MODE_QUARTER,	 ieee80211_rateset_quarter);
 	DEFAULTRATES(IEEE80211_MODE_11NA,	 ieee80211_rateset_11a);
 	DEFAULTRATES(IEEE80211_MODE_11NG,	 ieee80211_rateset_11g);
 
@@ -867,6 +875,8 @@ addmedia(struct ifmedia *media, int caps
 	    [IEEE80211_MODE_TURBO_A]	= IFM_IEEE80211_11A|IFM_IEEE80211_TURBO,
 	    [IEEE80211_MODE_TURBO_G]	= IFM_IEEE80211_11G|IFM_IEEE80211_TURBO,
 	    [IEEE80211_MODE_STURBO_A]	= IFM_IEEE80211_11A|IFM_IEEE80211_TURBO,
+	    [IEEE80211_MODE_HALF]	= IFM_IEEE80211_11A,	/* XXX */
+	    [IEEE80211_MODE_QUARTER]	= IFM_IEEE80211_11A,	/* XXX */
 	    [IEEE80211_MODE_11NA]	= IFM_IEEE80211_11NA,
 	    [IEEE80211_MODE_11NG]	= IFM_IEEE80211_11NG,
 	};
@@ -955,7 +965,7 @@ ieee80211_media_setup(struct ieee80211co
 	 * use a "placeholder" media subtype and any fixed MCS
 	 * must be specified with a different mechanism.
 	 */
-	for (; mode < IEEE80211_MODE_MAX; mode++) {
+	for (; mode <= IEEE80211_MODE_11NG; mode++) {
 		if (isclr(ic->ic_modecaps, mode))
 			continue;
 		addmedia(media, caps, addsta, mode, IFM_AUTO);
@@ -1006,13 +1016,10 @@ ieee80211_media_init(struct ieee80211com
 	/* XXX need to propagate new media settings to vap's */
 }
 
+/* XXX inline or eliminate? */
 const struct ieee80211_rateset *
 ieee80211_get_suprates(struct ieee80211com *ic, const struct ieee80211_channel *c)
 {
-	if (IEEE80211_IS_CHAN_HALF(c))
-		return &ieee80211_rateset_half;
-	if (IEEE80211_IS_CHAN_QUARTER(c))
-		return &ieee80211_rateset_quarter;
 	/* XXX does this work for 11ng basic rates? */
 	return &ic->ic_sup_rates[ieee80211_chan2mode(c)];
 }
@@ -1317,6 +1324,10 @@ ieee80211_chan2mode(const struct ieee802
 		return IEEE80211_MODE_STURBO_A;
 	else if (IEEE80211_IS_CHAN_TURBO(chan))
 		return IEEE80211_MODE_TURBO_A;
+	else if (IEEE80211_IS_CHAN_HALF(chan))
+		return IEEE80211_MODE_HALF;
+	else if (IEEE80211_IS_CHAN_QUARTER(chan))
+		return IEEE80211_MODE_QUARTER;
 	else if (IEEE80211_IS_CHAN_A(chan))
 		return IEEE80211_MODE_11A;
 	else if (IEEE80211_IS_CHAN_ANYG(chan))
@@ -1432,6 +1443,8 @@ ieee80211_rate2media(struct ieee80211com
 	rate &= IEEE80211_RATE_VAL;
 	switch (mode) {
 	case IEEE80211_MODE_11A:
+	case IEEE80211_MODE_HALF:		/* XXX good 'nuf */
+	case IEEE80211_MODE_QUARTER:
 	case IEEE80211_MODE_11NA:
 	case IEEE80211_MODE_TURBO_A:
 	case IEEE80211_MODE_STURBO_A:

Modified: projects/vap7/sys/net80211/ieee80211_ioctl.c
==============================================================================
--- projects/vap7/sys/net80211/ieee80211_ioctl.c	Thu Feb 19 05:51:29 2009	(r188798)
+++ projects/vap7/sys/net80211/ieee80211_ioctl.c	Thu Feb 19 05:52:14 2009	(r188799)
@@ -1769,6 +1769,8 @@ findchannel(struct ieee80211com *ic, int
 	    [IEEE80211_MODE_TURBO_A]	= IEEE80211_CHAN_108A,
 	    [IEEE80211_MODE_TURBO_G]	= IEEE80211_CHAN_108G,
 	    [IEEE80211_MODE_STURBO_A]	= IEEE80211_CHAN_STURBO,
+	    [IEEE80211_MODE_HALF]	= IEEE80211_CHAN_HALF,
+	    [IEEE80211_MODE_QUARTER]	= IEEE80211_CHAN_QUARTER,
 	    /* NB: handled specially below */
 	    [IEEE80211_MODE_11NA]	= IEEE80211_CHAN_A,
 	    [IEEE80211_MODE_11NG]	= IEEE80211_CHAN_G,

Modified: projects/vap7/sys/net80211/ieee80211_node.c
==============================================================================
--- projects/vap7/sys/net80211/ieee80211_node.c	Thu Feb 19 05:51:29 2009	(r188798)
+++ projects/vap7/sys/net80211/ieee80211_node.c	Thu Feb 19 05:52:14 2009	(r188799)
@@ -237,6 +237,10 @@ node_setuptxparms(struct ieee80211_node 
 		/* NB: 108A/108G should be handled as 11a/11g respectively */
 		if (IEEE80211_IS_CHAN_ST(ni->ni_chan))
 			mode = IEEE80211_MODE_STURBO_A;
+		else if (IEEE80211_IS_CHAN_HALF(ni->ni_chan))
+			mode = IEEE80211_MODE_HALF;
+		else if (IEEE80211_IS_CHAN_QUARTER(ni->ni_chan))
+			mode = IEEE80211_MODE_QUARTER;
 		else if (IEEE80211_IS_CHAN_A(ni->ni_chan))
 			mode = IEEE80211_MODE_11A;
 		else if (ni->ni_flags & IEEE80211_NODE_ERP)

Modified: projects/vap7/sys/net80211/ieee80211_proto.c
==============================================================================
--- projects/vap7/sys/net80211/ieee80211_proto.c	Thu Feb 19 05:51:29 2009	(r188798)
+++ projects/vap7/sys/net80211/ieee80211_proto.c	Thu Feb 19 05:52:14 2009	(r188799)
@@ -662,6 +662,8 @@ setbasicrates(struct ieee80211_rateset *
 	    [IEEE80211_MODE_TURBO_A]	= { 3, { 12, 24, 48 } },
 	    [IEEE80211_MODE_TURBO_G]	= { 4, { 2, 4, 11, 22 } },
 	    [IEEE80211_MODE_STURBO_A]	= { 3, { 12, 24, 48 } },
+	    [IEEE80211_MODE_HALF]	= { 3, { 6, 12, 24 } },
+	    [IEEE80211_MODE_QUARTER]	= { 3, { 3, 6, 12 } },
 	    [IEEE80211_MODE_11NA]	= { 3, { 12, 24, 48 } },
 					    /* NB: mixed b/g */
 	    [IEEE80211_MODE_11NG]	= { 4, { 2, 4, 11, 22 } },
@@ -725,6 +727,8 @@ static const struct phyParamType phyPara
 	[IEEE80211_MODE_TURBO_A]= { 2, 3,  5,  0, 0 },
 	[IEEE80211_MODE_TURBO_G]= { 2, 3,  5,  0, 0 },
 	[IEEE80211_MODE_STURBO_A]={ 2, 3,  5,  0, 0 },
+	[IEEE80211_MODE_HALF]	= { 3, 4,  6,  0, 0 },
+	[IEEE80211_MODE_QUARTER]= { 3, 4,  6,  0, 0 },
 	[IEEE80211_MODE_11NA]	= { 3, 4,  6,  0, 0 },
 	[IEEE80211_MODE_11NG]	= { 3, 4,  6,  0, 0 },
 };
@@ -737,6 +741,8 @@ static const struct phyParamType phyPara
 	[IEEE80211_MODE_TURBO_A]= { 7, 3, 10,  0, 0 },
 	[IEEE80211_MODE_TURBO_G]= { 7, 3, 10,  0, 0 },
 	[IEEE80211_MODE_STURBO_A]={ 7, 3, 10,  0, 0 },
+	[IEEE80211_MODE_HALF]	= { 7, 4, 10,  0, 0 },
+	[IEEE80211_MODE_QUARTER]= { 7, 4, 10,  0, 0 },
 	[IEEE80211_MODE_11NA]	= { 7, 4, 10,  0, 0 },
 	[IEEE80211_MODE_11NG]	= { 7, 4, 10,  0, 0 },
 };
@@ -749,6 +755,8 @@ static const struct phyParamType phyPara
 	[IEEE80211_MODE_TURBO_A]= { 1, 2, 3,  94, 0 },
 	[IEEE80211_MODE_TURBO_G]= { 1, 2, 3,  94, 0 },
 	[IEEE80211_MODE_STURBO_A]={ 1, 2, 3,  94, 0 },
+	[IEEE80211_MODE_HALF]	= { 1, 3, 4,  94, 0 },
+	[IEEE80211_MODE_QUARTER]= { 1, 3, 4,  94, 0 },
 	[IEEE80211_MODE_11NA]	= { 1, 3, 4,  94, 0 },
 	[IEEE80211_MODE_11NG]	= { 1, 3, 4,  94, 0 },
 };
@@ -761,6 +769,8 @@ static const struct phyParamType phyPara
 	[IEEE80211_MODE_TURBO_A]= { 1, 2, 2,  47, 0 },
 	[IEEE80211_MODE_TURBO_G]= { 1, 2, 2,  47, 0 },
 	[IEEE80211_MODE_STURBO_A]={ 1, 2, 2,  47, 0 },
+	[IEEE80211_MODE_HALF]	= { 1, 2, 3,  47, 0 },
+	[IEEE80211_MODE_QUARTER]= { 1, 2, 3,  47, 0 },
 	[IEEE80211_MODE_11NA]	= { 1, 2, 3,  47, 0 },
 	[IEEE80211_MODE_11NG]	= { 1, 2, 3,  47, 0 },
 };
@@ -774,6 +784,8 @@ static const struct phyParamType bssPhyP
 	[IEEE80211_MODE_TURBO_A]= { 2, 3, 10,  0, 0 },
 	[IEEE80211_MODE_TURBO_G]= { 2, 3, 10,  0, 0 },
 	[IEEE80211_MODE_STURBO_A]={ 2, 3, 10,  0, 0 },
+	[IEEE80211_MODE_HALF]	= { 3, 4, 10,  0, 0 },
+	[IEEE80211_MODE_QUARTER]= { 3, 4, 10,  0, 0 },
 	[IEEE80211_MODE_11NA]	= { 3, 4, 10,  0, 0 },
 	[IEEE80211_MODE_11NG]	= { 3, 4, 10,  0, 0 },
 };
@@ -786,6 +798,8 @@ static const struct phyParamType bssPhyP
 	[IEEE80211_MODE_TURBO_A]= { 2, 2, 3,  94, 0 },
 	[IEEE80211_MODE_TURBO_G]= { 2, 2, 3,  94, 0 },
 	[IEEE80211_MODE_STURBO_A]={ 2, 2, 3,  94, 0 },
+	[IEEE80211_MODE_HALF]	= { 2, 3, 4,  94, 0 },
+	[IEEE80211_MODE_QUARTER]= { 2, 3, 4,  94, 0 },
 	[IEEE80211_MODE_11NA]	= { 2, 3, 4,  94, 0 },
 	[IEEE80211_MODE_11NG]	= { 2, 3, 4,  94, 0 },
 };
@@ -798,6 +812,8 @@ static const struct phyParamType bssPhyP
 	[IEEE80211_MODE_TURBO_A]= { 1, 2, 2,  47, 0 },
 	[IEEE80211_MODE_TURBO_G]= { 1, 2, 2,  47, 0 },
 	[IEEE80211_MODE_STURBO_A]={ 1, 2, 2,  47, 0 },
+	[IEEE80211_MODE_HALF]	= { 2, 2, 3,  47, 0 },
+	[IEEE80211_MODE_QUARTER]= { 2, 2, 3,  47, 0 },
 	[IEEE80211_MODE_11NA]	= { 2, 2, 3,  47, 0 },
 	[IEEE80211_MODE_11NG]	= { 2, 2, 3,  47, 0 },
 };
@@ -930,6 +946,8 @@ ieee80211_wme_updateparams_locked(struct
 	    [IEEE80211_MODE_TURBO_A]	= { 1, 3, 10, 64, 0 },
 	    [IEEE80211_MODE_TURBO_G]	= { 1, 3, 10, 64, 0 },
 	    [IEEE80211_MODE_STURBO_A]	= { 1, 3, 10, 64, 0 },
+	    [IEEE80211_MODE_HALF]	= { 2, 4, 10, 64, 0 },
+	    [IEEE80211_MODE_QUARTER]	= { 2, 4, 10, 64, 0 },
 	    [IEEE80211_MODE_11NA]	= { 2, 4, 10, 64, 0 },	/* XXXcheck*/
 	    [IEEE80211_MODE_11NG]	= { 2, 4, 10, 64, 0 },	/* XXXcheck*/
 	};
@@ -1016,6 +1034,8 @@ ieee80211_wme_updateparams_locked(struct
 		    [IEEE80211_MODE_TURBO_A]	= 3,
 		    [IEEE80211_MODE_TURBO_G]	= 3,
 		    [IEEE80211_MODE_STURBO_A]	= 3,
+		    [IEEE80211_MODE_HALF]	= 3,
+		    [IEEE80211_MODE_QUARTER]	= 3,
 		    [IEEE80211_MODE_11NA]	= 3,
 		    [IEEE80211_MODE_11NG]	= 3,
 		};

Modified: projects/vap7/sys/net80211/ieee80211_regdomain.c
==============================================================================
--- projects/vap7/sys/net80211/ieee80211_regdomain.c	Thu Feb 19 05:51:29 2009	(r188798)
+++ projects/vap7/sys/net80211/ieee80211_regdomain.c	Thu Feb 19 05:52:14 2009	(r188799)
@@ -214,7 +214,7 @@ ieee80211_alloc_countryie(struct ieee802
     (IEEE80211_CHAN_TURBO | IEEE80211_CHAN_STURBO | \
      IEEE80211_CHAN_HALF | IEEE80211_CHAN_QUARTER)
 	/* XXX what about auto? */
-	/* flag set of channels to be excluded */
+	/* flag set of channels to be excluded (band added below) */
 	static const int skipflags[IEEE80211_MODE_MAX] = {
 	    [IEEE80211_MODE_AUTO]	= CHAN_UNINTERESTING,
 	    [IEEE80211_MODE_11A]	= CHAN_UNINTERESTING,
@@ -227,6 +227,10 @@ ieee80211_alloc_countryie(struct ieee802
 	    [IEEE80211_MODE_TURBO_A]	= CHAN_UNINTERESTING,
 	    [IEEE80211_MODE_TURBO_G]	= CHAN_UNINTERESTING,
 	    [IEEE80211_MODE_STURBO_A]	= CHAN_UNINTERESTING,
+	    [IEEE80211_MODE_HALF]	= IEEE80211_CHAN_TURBO
+					| IEEE80211_CHAN_STURBO,
+	    [IEEE80211_MODE_QUARTER]	= IEEE80211_CHAN_TURBO
+					| IEEE80211_CHAN_STURBO,
 	    [IEEE80211_MODE_11NA]	= CHAN_UNINTERESTING,
 	    [IEEE80211_MODE_11NG]	= CHAN_UNINTERESTING,
 	};

Modified: projects/vap7/sys/net80211/ieee80211_scan.c
==============================================================================
--- projects/vap7/sys/net80211/ieee80211_scan.c	Thu Feb 19 05:51:29 2009	(r188798)
+++ projects/vap7/sys/net80211/ieee80211_scan.c	Thu Feb 19 05:52:14 2009	(r188799)
@@ -84,6 +84,8 @@ struct scan_state {
 #define	ROAM_RATE_11A_DEFAULT		2*12	/* 11a bss */
 #define	ROAM_RATE_11B_DEFAULT		2*5	/* 11b bss */
 #define	ROAM_RATE_11BONLY_DEFAULT	2*1	/* 11b-only bss */
+#define	ROAM_RATE_HALF_DEFAULT		2*6	/* half-width 11a/g bss */
+#define	ROAM_RATE_QUARTER_DEFAULT	2*3	/* quarter-width 11a/g bss */
 #define	ROAM_MCS_11N_DEFAULT		(1 | IEEE80211_RATE_MCS) /* 11n bss */
 
 static	void scan_restart_pwrsav(void *);
@@ -141,6 +143,10 @@ static const struct ieee80211_roamparam 
 				    .rate = ROAM_RATE_11A_DEFAULT },
 	[IEEE80211_MODE_STURBO_A]={ .rssi = ROAM_RSSI_11A_DEFAULT,
 				    .rate = ROAM_RATE_11A_DEFAULT },
+	[IEEE80211_MODE_HALF]	= { .rssi = ROAM_RSSI_11A_DEFAULT,
+				    .rate = ROAM_RATE_HALF_DEFAULT },
+	[IEEE80211_MODE_QUARTER]= { .rssi = ROAM_RSSI_11A_DEFAULT,
+				    .rate = ROAM_RATE_QUARTER_DEFAULT },
 	[IEEE80211_MODE_11NA]	= { .rssi = ROAM_RSSI_11A_DEFAULT,
 				    .rate = ROAM_MCS_11N_DEFAULT },
 	[IEEE80211_MODE_11NG]	= { .rssi = ROAM_RSSI_11B_DEFAULT,

Modified: projects/vap7/sys/net80211/ieee80211_scan_sta.c
==============================================================================
--- projects/vap7/sys/net80211/ieee80211_scan_sta.c	Thu Feb 19 05:51:29 2009	(r188798)
+++ projects/vap7/sys/net80211/ieee80211_scan_sta.c	Thu Feb 19 05:52:14 2009	(r188799)
@@ -416,6 +416,8 @@ static const u_int chanflags[IEEE80211_M
 	[IEEE80211_MODE_TURBO_A]  = IEEE80211_CHAN_A,
 	[IEEE80211_MODE_TURBO_G]  = IEEE80211_CHAN_G,
 	[IEEE80211_MODE_STURBO_A] = IEEE80211_CHAN_ST,
+	[IEEE80211_MODE_HALF]	  = IEEE80211_CHAN_HALF,
+	[IEEE80211_MODE_QUARTER]  = IEEE80211_CHAN_QUARTER,
 	/* check legacy */
 	[IEEE80211_MODE_11NA]	  = IEEE80211_CHAN_A,
 	[IEEE80211_MODE_11NG]	  = IEEE80211_CHAN_G,

Modified: projects/vap7/sys/net80211/ieee80211_tdma.c
==============================================================================
--- projects/vap7/sys/net80211/ieee80211_tdma.c	Thu Feb 19 05:51:29 2009	(r188798)
+++ projects/vap7/sys/net80211/ieee80211_tdma.c	Thu Feb 19 05:52:14 2009	(r188799)
@@ -82,6 +82,12 @@ __FBSDID("$FreeBSD$");
 #ifndef TDMA_TXRATE_STURBO_A_DEFAULT
 #define	TDMA_TXRATE_STURBO_A_DEFAULT	2*24
 #endif
+#ifndef TDMA_TXRATE_HALF_DEFAULT
+#define	TDMA_TXRATE_HALF_DEFAULT	2*12
+#endif
+#ifndef TDMA_TXRATE_QUARTER_DEFAULT
+#define	TDMA_TXRATE_QUARTER_DEFAULT	2*6
+#endif
 #ifndef TDMA_TXRATE_11NA_DEFAULT
 #define	TDMA_TXRATE_11NA_DEFAULT	(4 | IEEE80211_RATE_MCS)
 #endif
@@ -148,6 +154,8 @@ ieee80211_tdma_vattach(struct ieee80211v
 	settxparms(vap, IEEE80211_MODE_STURBO_A, TDMA_TXRATE_STURBO_A_DEFAULT);
 	settxparms(vap, IEEE80211_MODE_11NA, TDMA_TXRATE_11NA_DEFAULT);
 	settxparms(vap, IEEE80211_MODE_11NG, TDMA_TXRATE_11NG_DEFAULT);
+	settxparms(vap, IEEE80211_MODE_HALF, TDMA_TXRATE_HALF_DEFAULT);
+	settxparms(vap, IEEE80211_MODE_QUARTER, TDMA_TXRATE_QUARTER_DEFAULT);
 
 	setackpolicy(vap->iv_ic, 1);	/* disable ACK's */
 


More information about the svn-src-projects mailing list