summaryrefslogtreecommitdiffstats
path: root/sys/net80211/ieee80211_mesh.c
diff options
context:
space:
mode:
authorrpaulo <rpaulo@FreeBSD.org>2010-03-18 11:06:38 +0000
committerrpaulo <rpaulo@FreeBSD.org>2010-03-18 11:06:38 +0000
commit1afdf5764e23446aae43fcbc2a8d90d1142caf2c (patch)
treebab574d05eb7a162ad95d8f073269744c881e2f5 /sys/net80211/ieee80211_mesh.c
parentabd6b4ebb704c554021e3532c567b55508cb9862 (diff)
downloadFreeBSD-src-1afdf5764e23446aae43fcbc2a8d90d1142caf2c.zip
FreeBSD-src-1afdf5764e23446aae43fcbc2a8d90d1142caf2c.tar.gz
Fix a couple of bugs with 802.11n:
o Process the BAR frame on the adhoc, mesh and sta modes o Fix the format of the ADDBA reply frame o Fix references to the spec section numbers Also, print the all the MCS rates in bootverbose. Sponsored by: iXsystems, Inc. Obtained from: //depot/user/rpaulo/80211n/...
Diffstat (limited to 'sys/net80211/ieee80211_mesh.c')
-rw-r--r--sys/net80211/ieee80211_mesh.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/sys/net80211/ieee80211_mesh.c b/sys/net80211/ieee80211_mesh.c
index 417337b..1086113 100644
--- a/sys/net80211/ieee80211_mesh.c
+++ b/sys/net80211/ieee80211_mesh.c
@@ -82,6 +82,7 @@ static void mesh_forward(struct ieee80211vap *, struct mbuf *,
static int mesh_input(struct ieee80211_node *, struct mbuf *, int, int);
static void mesh_recv_mgmt(struct ieee80211_node *, struct mbuf *, int,
int, int);
+static void mesh_recv_ctl(struct ieee80211_node *, struct mbuf *, int);
static void mesh_peer_timeout_setup(struct ieee80211_node *);
static void mesh_peer_timeout_backoff(struct ieee80211_node *);
static void mesh_peer_timeout_cb(void *);
@@ -520,6 +521,7 @@ mesh_vattach(struct ieee80211vap *vap)
vap->iv_input = mesh_input;
vap->iv_opdetach = mesh_vdetach;
vap->iv_recv_mgmt = mesh_recv_mgmt;
+ vap->iv_recv_ctl = mesh_recv_ctl;
ms = malloc(sizeof(struct ieee80211_mesh_state), M_80211_VAP,
M_NOWAIT | M_ZERO);
if (ms == NULL) {
@@ -1535,6 +1537,17 @@ mesh_recv_mgmt(struct ieee80211_node *ni, struct mbuf *m0, int subtype,
}
}
+static void
+mesh_recv_ctl(struct ieee80211_node *ni, struct mbuf *m, int subtype)
+{
+
+ switch (subtype) {
+ case IEEE80211_FC0_SUBTYPE_BAR:
+ ieee80211_recv_bar(ni, m);
+ break;
+ }
+}
+
/*
* Parse meshpeering action ie's for open+confirm frames; the
* important bits are returned in the supplied structure.
OpenPOWER on IntegriCloud