summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sys/dev/bwi/if_bwi.c3
-rw-r--r--sys/dev/bwn/if_bwn.c1
-rw-r--r--sys/dev/iwn/if_iwn.c1
-rw-r--r--sys/dev/ral/rt2560.c1
-rw-r--r--sys/dev/ral/rt2661.c1
-rw-r--r--sys/dev/usb/wlan/if_rum.c1
-rw-r--r--sys/dev/usb/wlan/if_run.c3
-rw-r--r--sys/dev/usb/wlan/if_ural.c1
-rw-r--r--sys/dev/usb/wlan/if_zyd.c1
-rw-r--r--sys/dev/wpi/if_wpi.c1
-rw-r--r--sys/net80211/ieee80211.c4
-rw-r--r--sys/net80211/ieee80211_node.c15
-rw-r--r--sys/net80211/ieee80211_ratectl.c8
-rw-r--r--sys/net80211/ieee80211_ratectl.h7
-rw-r--r--sys/net80211/ieee80211_sta.c3
-rw-r--r--sys/net80211/ieee80211_var.h3
16 files changed, 19 insertions, 35 deletions
diff --git a/sys/dev/bwi/if_bwi.c b/sys/dev/bwi/if_bwi.c
index 48eec98..5501c13 100644
--- a/sys/dev/bwi/if_bwi.c
+++ b/sys/dev/bwi/if_bwi.c
@@ -511,8 +511,7 @@ bwi_attach(struct bwi_softc *sc)
IEEE80211_C_SHPREAMBLE |
IEEE80211_C_WPA |
IEEE80211_C_BGSCAN |
- IEEE80211_C_MONITOR |
- IEEE80211_C_RATECTL;
+ IEEE80211_C_MONITOR;
ic->ic_opmode = IEEE80211_M_STA;
ieee80211_ifattach(ic, macaddr);
diff --git a/sys/dev/bwn/if_bwn.c b/sys/dev/bwn/if_bwn.c
index 8e3c8b9..587b734 100644
--- a/sys/dev/bwn/if_bwn.c
+++ b/sys/dev/bwn/if_bwn.c
@@ -1070,7 +1070,6 @@ bwn_attach_post(struct bwn_softc *sc)
| IEEE80211_C_WPA /* capable of WPA1+WPA2 */
| IEEE80211_C_BGSCAN /* capable of bg scanning */
| IEEE80211_C_TXPMGT /* capable of txpow mgt */
- | IEEE80211_C_RATECTL /* use ratectl */
;
ic->ic_flags_ext |= IEEE80211_FEXT_SWBMISS; /* s/w bmiss */
diff --git a/sys/dev/iwn/if_iwn.c b/sys/dev/iwn/if_iwn.c
index e5fa6d6..1d58ef8 100644
--- a/sys/dev/iwn/if_iwn.c
+++ b/sys/dev/iwn/if_iwn.c
@@ -584,7 +584,6 @@ iwn_attach(device_t dev)
| IEEE80211_C_IBSS /* ibss/adhoc mode */
#endif
| IEEE80211_C_WME /* WME */
- | IEEE80211_C_RATECTL /* use ratectl */
;
#if 0 /* HT */
/* XXX disable until HT channel setup works */
diff --git a/sys/dev/ral/rt2560.c b/sys/dev/ral/rt2560.c
index cdf7bad..a339807 100644
--- a/sys/dev/ral/rt2560.c
+++ b/sys/dev/ral/rt2560.c
@@ -291,7 +291,6 @@ rt2560_attach(device_t dev, int id)
#ifdef notyet
| IEEE80211_C_TXFRAG /* handle tx frags */
#endif
- | IEEE80211_C_RATECTL /* use ratectl */
;
bands = 0;
diff --git a/sys/dev/ral/rt2661.c b/sys/dev/ral/rt2661.c
index 04729be..9b77c23 100644
--- a/sys/dev/ral/rt2661.c
+++ b/sys/dev/ral/rt2661.c
@@ -294,7 +294,6 @@ rt2661_attach(device_t dev, int id)
| IEEE80211_C_TXFRAG /* handle tx frags */
| IEEE80211_C_WME /* 802.11e */
#endif
- | IEEE80211_C_RATECTL /* use ratectl */
;
bands = 0;
diff --git a/sys/dev/usb/wlan/if_rum.c b/sys/dev/usb/wlan/if_rum.c
index 21961ce..c914d5e 100644
--- a/sys/dev/usb/wlan/if_rum.c
+++ b/sys/dev/usb/wlan/if_rum.c
@@ -496,7 +496,6 @@ rum_attach(device_t self)
| IEEE80211_C_SHSLOT /* short slot time supported */
| IEEE80211_C_BGSCAN /* bg scanning supported */
| IEEE80211_C_WPA /* 802.11i */
- | IEEE80211_C_RATECTL /* use ratectl */
;
bands = 0;
diff --git a/sys/dev/usb/wlan/if_run.c b/sys/dev/usb/wlan/if_run.c
index d6cbf3a..060eb81 100644
--- a/sys/dev/usb/wlan/if_run.c
+++ b/sys/dev/usb/wlan/if_run.c
@@ -632,8 +632,7 @@ run_attach(device_t self)
IEEE80211_C_SHPREAMBLE | /* short preamble supported */
IEEE80211_C_SHSLOT | /* short slot time supported */
IEEE80211_C_WME | /* WME */
- IEEE80211_C_WPA | /* WPA1|WPA2(RSN) */
- IEEE80211_C_RATECTL; /* use ratectl */
+ IEEE80211_C_WPA; /* WPA1|WPA2(RSN) */
ic->ic_cryptocaps =
IEEE80211_CRYPTO_WEP |
diff --git a/sys/dev/usb/wlan/if_ural.c b/sys/dev/usb/wlan/if_ural.c
index aa2dcbd..3ebdafe 100644
--- a/sys/dev/usb/wlan/if_ural.c
+++ b/sys/dev/usb/wlan/if_ural.c
@@ -486,7 +486,6 @@ ural_attach(device_t self)
| IEEE80211_C_SHSLOT /* short slot time supported */
| IEEE80211_C_BGSCAN /* bg scanning supported */
| IEEE80211_C_WPA /* 802.11i */
- | IEEE80211_C_RATECTL /* use ratectl */
;
bands = 0;
diff --git a/sys/dev/usb/wlan/if_zyd.c b/sys/dev/usb/wlan/if_zyd.c
index e8d7b7e..677db54 100644
--- a/sys/dev/usb/wlan/if_zyd.c
+++ b/sys/dev/usb/wlan/if_zyd.c
@@ -397,7 +397,6 @@ zyd_attach(device_t dev)
| IEEE80211_C_SHSLOT /* short slot time supported */
| IEEE80211_C_BGSCAN /* capable of bg scanning */
| IEEE80211_C_WPA /* 802.11i */
- | IEEE80211_C_RATECTL /* use ratectl */
;
bands = 0;
diff --git a/sys/dev/wpi/if_wpi.c b/sys/dev/wpi/if_wpi.c
index 26336bfc3..f6edc91 100644
--- a/sys/dev/wpi/if_wpi.c
+++ b/sys/dev/wpi/if_wpi.c
@@ -634,7 +634,6 @@ wpi_attach(device_t dev)
| IEEE80211_C_WME /* 802.11e */
| IEEE80211_C_HOSTAP /* Host access point mode */
#endif
- | IEEE80211_C_RATECTL /* use ratectl */
;
/*
diff --git a/sys/net80211/ieee80211.c b/sys/net80211/ieee80211.c
index 6848824..409cf1d 100644
--- a/sys/net80211/ieee80211.c
+++ b/sys/net80211/ieee80211.c
@@ -486,9 +486,7 @@ ieee80211_vap_setup(struct ieee80211com *ic, struct ieee80211vap *vap,
ieee80211_scan_vattach(vap);
ieee80211_regdomain_vattach(vap);
ieee80211_radiotap_vattach(vap);
-
- if (vap->iv_caps & IEEE80211_C_RATECTL)
- ieee80211_ratectl_set(vap, IEEE80211_RATECTL_AMRR);
+ ieee80211_ratectl_set(vap, IEEE80211_RATECTL_NONE);
return 0;
}
diff --git a/sys/net80211/ieee80211_node.c b/sys/net80211/ieee80211_node.c
index 2dc4871..2c1acff 100644
--- a/sys/net80211/ieee80211_node.c
+++ b/sys/net80211/ieee80211_node.c
@@ -817,8 +817,7 @@ ieee80211_sta_join(struct ieee80211vap *vap, struct ieee80211_channel *chan,
if (ieee80211_iserp_rateset(&ni->ni_rates))
ni->ni_flags |= IEEE80211_NODE_ERP;
ieee80211_node_setuptxparms(ni);
- if (vap->iv_caps & IEEE80211_C_RATECTL)
- ieee80211_ratectl_node_init(ni);
+ ieee80211_ratectl_node_init(ni);
return ieee80211_sta_join1(ieee80211_ref_node(ni));
}
@@ -1038,8 +1037,7 @@ node_free(struct ieee80211_node *ni)
{
struct ieee80211com *ic = ni->ni_ic;
- if (ni->ni_vap->iv_caps & IEEE80211_C_RATECTL)
- ieee80211_ratectl_node_deinit(ni);
+ ieee80211_ratectl_node_deinit(ni);
ic->ic_node_cleanup(ni);
ieee80211_ies_cleanup(&ni->ni_ies);
ieee80211_psq_cleanup(&ni->ni_psq);
@@ -1404,8 +1402,7 @@ ieee80211_fakeup_adhoc_node(struct ieee80211vap *vap,
#endif
}
ieee80211_node_setuptxparms(ni);
- if (vap->iv_caps & IEEE80211_C_RATECTL)
- ieee80211_ratectl_node_init(ni);
+ ieee80211_ratectl_node_init(ni);
if (ic->ic_newassoc != NULL)
ic->ic_newassoc(ni, 1);
/* XXX not right for 802.1x/WPA */
@@ -1475,8 +1472,7 @@ ieee80211_add_neighbor(struct ieee80211vap *vap,
if (ieee80211_iserp_rateset(&ni->ni_rates))
ni->ni_flags |= IEEE80211_NODE_ERP;
ieee80211_node_setuptxparms(ni);
- if (vap->iv_caps & IEEE80211_C_RATECTL)
- ieee80211_ratectl_node_init(ni);
+ ieee80211_ratectl_node_init(ni);
if (ic->ic_newassoc != NULL)
ic->ic_newassoc(ni, 1);
/* XXX not right for 802.1x/WPA */
@@ -2345,8 +2341,7 @@ ieee80211_node_join(struct ieee80211_node *ni, int resp)
);
ieee80211_node_setuptxparms(ni);
- if (vap->iv_caps & IEEE80211_C_RATECTL)
- ieee80211_ratectl_node_init(ni);
+ ieee80211_ratectl_node_init(ni);
/* give driver a chance to setup state like ni_txrate */
if (ic->ic_newassoc != NULL)
ic->ic_newassoc(ni, newassoc);
diff --git a/sys/net80211/ieee80211_ratectl.c b/sys/net80211/ieee80211_ratectl.c
index ea3d8d4..0ad46bd3 100644
--- a/sys/net80211/ieee80211_ratectl.c
+++ b/sys/net80211/ieee80211_ratectl.c
@@ -66,6 +66,14 @@ ieee80211_ratectl_unregister(int type)
}
void
+ieee80211_ratectl_init(struct ieee80211vap *vap)
+{
+ if (vap->iv_rate == ratectls[IEEE80211_RATECTL_NONE])
+ ieee80211_ratectl_set(vap, IEEE80211_RATECTL_AMRR);
+ vap->iv_rate->ir_init(vap);
+}
+
+void
ieee80211_ratectl_set(struct ieee80211vap *vap, int type)
{
if (type >= IEEE80211_RATECTL_MAX)
diff --git a/sys/net80211/ieee80211_ratectl.h b/sys/net80211/ieee80211_ratectl.h
index 87b2698..592405c 100644
--- a/sys/net80211/ieee80211_ratectl.h
+++ b/sys/net80211/ieee80211_ratectl.h
@@ -57,17 +57,12 @@ struct ieee80211_ratectl {
void ieee80211_ratectl_register(int, const struct ieee80211_ratectl *);
void ieee80211_ratectl_unregister(int);
+void ieee80211_ratectl_init(struct ieee80211vap *);
void ieee80211_ratectl_set(struct ieee80211vap *, int);
MALLOC_DECLARE(M_80211_RATECTL);
static void __inline
-ieee80211_ratectl_init(struct ieee80211vap *vap)
-{
- vap->iv_rate->ir_init(vap);
-}
-
-static void __inline
ieee80211_ratectl_deinit(struct ieee80211vap *vap)
{
vap->iv_rate->ir_deinit(vap);
diff --git a/sys/net80211/ieee80211_sta.c b/sys/net80211/ieee80211_sta.c
index 5764fa0..f93c3ed 100644
--- a/sys/net80211/ieee80211_sta.c
+++ b/sys/net80211/ieee80211_sta.c
@@ -1597,8 +1597,7 @@ sta_recv_mgmt(struct ieee80211_node *ni, struct mbuf *m0,
IEEE80211_F_JOIN | IEEE80211_F_DOBRS);
ieee80211_setup_basic_htrates(ni, htinfo);
ieee80211_node_setuptxparms(ni);
- if (vap->iv_caps & IEEE80211_C_RATECTL)
- ieee80211_ratectl_node_init(ni);
+ ieee80211_ratectl_node_init(ni);
} else {
#ifdef IEEE80211_SUPPORT_SUPERG
if (IEEE80211_ATH_CAP(vap, ni, IEEE80211_NODE_ATH))
diff --git a/sys/net80211/ieee80211_var.h b/sys/net80211/ieee80211_var.h
index c80ee9e..eea8dbe 100644
--- a/sys/net80211/ieee80211_var.h
+++ b/sys/net80211/ieee80211_var.h
@@ -601,8 +601,7 @@ MALLOC_DECLARE(M_80211_VAP);
#define IEEE80211_C_MONITOR 0x00010000 /* CAPABILITY: monitor mode */
#define IEEE80211_C_DFS 0x00020000 /* CAPABILITY: DFS/radar avail*/
#define IEEE80211_C_MBSS 0x00040000 /* CAPABILITY: MBSS available */
-#define IEEE80211_C_RATECTL 0x00080000 /* CAPABILITY: use ratectl */
-/* 0x700000 available */
+/* 0x7c0000 available */
#define IEEE80211_C_WPA1 0x00800000 /* CAPABILITY: WPA1 avail */
#define IEEE80211_C_WPA2 0x01000000 /* CAPABILITY: WPA2 avail */
#define IEEE80211_C_WPA 0x01800000 /* CAPABILITY: WPA1+WPA2 avail*/
OpenPOWER on IntegriCloud