missing merge from FreeBSD 8.2
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41558 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -51,6 +51,7 @@ __FBSDID("$FreeBSD$");
|
|||||||
#endif
|
#endif
|
||||||
#include <net80211/ieee80211_wds.h>
|
#include <net80211/ieee80211_wds.h>
|
||||||
#include <net80211/ieee80211_mesh.h>
|
#include <net80211/ieee80211_mesh.h>
|
||||||
|
#include <net80211/ieee80211_ratectl.h>
|
||||||
|
|
||||||
#include <net/bpf.h>
|
#include <net/bpf.h>
|
||||||
|
|
||||||
@@ -428,7 +429,7 @@ ieee80211_reset_bss(struct ieee80211vap *vap)
|
|||||||
ieee80211_reset_erp(ic);
|
ieee80211_reset_erp(ic);
|
||||||
|
|
||||||
ni = ieee80211_alloc_node(&ic->ic_sta, vap, vap->iv_myaddr);
|
ni = ieee80211_alloc_node(&ic->ic_sta, vap, vap->iv_myaddr);
|
||||||
KASSERT(ni != NULL, ("unable to setup inital BSS node"));
|
KASSERT(ni != NULL, ("unable to setup initial BSS node"));
|
||||||
obss = vap->iv_bss;
|
obss = vap->iv_bss;
|
||||||
vap->iv_bss = ieee80211_ref_node(ni);
|
vap->iv_bss = ieee80211_ref_node(ni);
|
||||||
if (obss != NULL) {
|
if (obss != NULL) {
|
||||||
@@ -813,6 +814,7 @@ ieee80211_sta_join(struct ieee80211vap *vap, struct ieee80211_channel *chan,
|
|||||||
if (ieee80211_iserp_rateset(&ni->ni_rates))
|
if (ieee80211_iserp_rateset(&ni->ni_rates))
|
||||||
ni->ni_flags |= IEEE80211_NODE_ERP;
|
ni->ni_flags |= IEEE80211_NODE_ERP;
|
||||||
ieee80211_node_setuptxparms(ni);
|
ieee80211_node_setuptxparms(ni);
|
||||||
|
ieee80211_ratectl_node_init(ni);
|
||||||
|
|
||||||
return ieee80211_sta_join1(ieee80211_ref_node(ni));
|
return ieee80211_sta_join1(ieee80211_ref_node(ni));
|
||||||
}
|
}
|
||||||
@@ -1032,6 +1034,7 @@ node_free(struct ieee80211_node *ni)
|
|||||||
{
|
{
|
||||||
struct ieee80211com *ic = ni->ni_ic;
|
struct ieee80211com *ic = ni->ni_ic;
|
||||||
|
|
||||||
|
ieee80211_ratectl_node_deinit(ni);
|
||||||
ic->ic_node_cleanup(ni);
|
ic->ic_node_cleanup(ni);
|
||||||
ieee80211_ies_cleanup(&ni->ni_ies);
|
ieee80211_ies_cleanup(&ni->ni_ies);
|
||||||
ieee80211_psq_cleanup(&ni->ni_psq);
|
ieee80211_psq_cleanup(&ni->ni_psq);
|
||||||
@@ -1131,6 +1134,8 @@ ieee80211_alloc_node(struct ieee80211_node_table *nt,
|
|||||||
IEEE80211_NOTE(vap, IEEE80211_MSG_INACT, ni,
|
IEEE80211_NOTE(vap, IEEE80211_MSG_INACT, ni,
|
||||||
"%s: inact_reload %u", __func__, ni->ni_inact_reload);
|
"%s: inact_reload %u", __func__, ni->ni_inact_reload);
|
||||||
|
|
||||||
|
ieee80211_ratectl_node_init(ni);
|
||||||
|
|
||||||
return ni;
|
return ni;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1168,6 +1173,8 @@ ieee80211_tmp_node(struct ieee80211vap *vap,
|
|||||||
ni->ni_txpower = bss->ni_txpower;
|
ni->ni_txpower = bss->ni_txpower;
|
||||||
/* XXX optimize away */
|
/* XXX optimize away */
|
||||||
ieee80211_psq_init(&ni->ni_psq, "unknown");
|
ieee80211_psq_init(&ni->ni_psq, "unknown");
|
||||||
|
|
||||||
|
ieee80211_ratectl_node_init(ni);
|
||||||
} else {
|
} else {
|
||||||
/* XXX msg */
|
/* XXX msg */
|
||||||
vap->iv_stats.is_rx_nodealloc++;
|
vap->iv_stats.is_rx_nodealloc++;
|
||||||
@@ -1396,6 +1403,7 @@ ieee80211_fakeup_adhoc_node(struct ieee80211vap *vap,
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
ieee80211_node_setuptxparms(ni);
|
ieee80211_node_setuptxparms(ni);
|
||||||
|
ieee80211_ratectl_node_init(ni);
|
||||||
if (ic->ic_newassoc != NULL)
|
if (ic->ic_newassoc != NULL)
|
||||||
ic->ic_newassoc(ni, 1);
|
ic->ic_newassoc(ni, 1);
|
||||||
/* XXX not right for 802.1x/WPA */
|
/* XXX not right for 802.1x/WPA */
|
||||||
@@ -1465,6 +1473,7 @@ ieee80211_add_neighbor(struct ieee80211vap *vap,
|
|||||||
if (ieee80211_iserp_rateset(&ni->ni_rates))
|
if (ieee80211_iserp_rateset(&ni->ni_rates))
|
||||||
ni->ni_flags |= IEEE80211_NODE_ERP;
|
ni->ni_flags |= IEEE80211_NODE_ERP;
|
||||||
ieee80211_node_setuptxparms(ni);
|
ieee80211_node_setuptxparms(ni);
|
||||||
|
ieee80211_ratectl_node_init(ni);
|
||||||
if (ic->ic_newassoc != NULL)
|
if (ic->ic_newassoc != NULL)
|
||||||
ic->ic_newassoc(ni, 1);
|
ic->ic_newassoc(ni, 1);
|
||||||
/* XXX not right for 802.1x/WPA */
|
/* XXX not right for 802.1x/WPA */
|
||||||
@@ -1736,7 +1745,7 @@ ieee80211_node_delucastkey(struct ieee80211_node *ni)
|
|||||||
status = ieee80211_crypto_delkey(ni->ni_vap, &ni->ni_ucastkey);
|
status = ieee80211_crypto_delkey(ni->ni_vap, &ni->ni_ucastkey);
|
||||||
if (nt->nt_keyixmap != NULL && keyix < nt->nt_keyixmax) {
|
if (nt->nt_keyixmap != NULL && keyix < nt->nt_keyixmax) {
|
||||||
nikey = nt->nt_keyixmap[keyix];
|
nikey = nt->nt_keyixmap[keyix];
|
||||||
nt->nt_keyixmap[keyix] = NULL;;
|
nt->nt_keyixmap[keyix] = NULL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!isowned)
|
if (!isowned)
|
||||||
@@ -2333,6 +2342,7 @@ ieee80211_node_join(struct ieee80211_node *ni, int resp)
|
|||||||
);
|
);
|
||||||
|
|
||||||
ieee80211_node_setuptxparms(ni);
|
ieee80211_node_setuptxparms(ni);
|
||||||
|
ieee80211_ratectl_node_init(ni);
|
||||||
/* give driver a chance to setup state like ni_txrate */
|
/* give driver a chance to setup state like ni_txrate */
|
||||||
if (ic->ic_newassoc != NULL)
|
if (ic->ic_newassoc != NULL)
|
||||||
ic->ic_newassoc(ni, newassoc);
|
ic->ic_newassoc(ni, newassoc);
|
||||||
|
|||||||
Reference in New Issue
Block a user