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