summaryrefslogtreecommitdiff
path: root/sys/dev
diff options
context:
space:
mode:
authorDamien Bergamini <damien@cvs.openbsd.org>2009-01-26 19:09:42 +0000
committerDamien Bergamini <damien@cvs.openbsd.org>2009-01-26 19:09:42 +0000
commitf5bde2a8b2c137a3c51797048f76f625179c249b (patch)
treee7ada894dc97c72e04d71f1fca20fee90e8dc80b /sys/dev
parentba892d095172c6f93edba4a0a5af1c2f8754d770 (diff)
Add some initial HT bits (not enabled yet) based on 802.11n Draft 7.01:
- implement A-MPDU frames buffering and reordering - implement A-MSDU decapsulation - process/send ADDBA Request, ADDBA Response and DELBA action frames - process Block Ack Request control frames (including MTBAR) - implement PBAC support (Protected Block Ack) - add some incomplete HT Capabilities and HT Operation IEs parsing Add more Management Frame Protection bits based on 802.11w Draft 7.0: - implement SA Query procedure (both AP and STA) - cleanup BIP Fix some bugs: - fix check for WEP key length that otherwise caused a stack smash in ieee80211_wep_encrypt (pointed out by Xavier Santolaria on macppc) - properly stop EAPOL timeout: fixes a panic that occured in HostAP mode when turning the interface down while a 4-way handshake is in progress (pointed out by Doughertys) Did some code cleanup too. The HT bits are currently not compiled in (IEEE80211_NO_HT is defined) because they won't be ready until after the next release and I didn't want to grow the kernel or to inadvertently introduce new bugs. They are here such that other people can look at the code. Notice that I had to add an extra parameter to ic_send_mgmt() for action frames, that is why there are small changes in drivers defining their own ic_send_mgmt() handler. Sorry for the not very incremental diff but this has been sitting in my tree for too long now.
Diffstat (limited to 'sys/dev')
-rw-r--r--sys/dev/ic/pgt.c6
-rw-r--r--sys/dev/pci/if_ipw.c6
-rw-r--r--sys/dev/pci/if_iwi.c6
3 files changed, 9 insertions, 9 deletions
diff --git a/sys/dev/ic/pgt.c b/sys/dev/ic/pgt.c
index b907be9d68d..faee72ce900 100644
--- a/sys/dev/ic/pgt.c
+++ b/sys/dev/ic/pgt.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: pgt.c,v 1.52 2008/08/29 12:14:53 damien Exp $ */
+/* $OpenBSD: pgt.c,v 1.53 2009/01/26 19:09:41 damien Exp $ */
/*
* Copyright (c) 2006 Claudio Jeker <claudio@openbsd.org>
@@ -171,7 +171,7 @@ void pgt_ieee80211_node_copy(struct ieee80211com *,
struct ieee80211_node *,
const struct ieee80211_node *);
int pgt_ieee80211_send_mgmt(struct ieee80211com *,
- struct ieee80211_node *, int, int);
+ struct ieee80211_node *, int, int, int);
int pgt_net_attach(struct pgt_softc *);
void pgt_start(struct ifnet *);
int pgt_ioctl(struct ifnet *, u_long, caddr_t);
@@ -1858,7 +1858,7 @@ pgt_ieee80211_node_copy(struct ieee80211com *ic, struct ieee80211_node *dst,
int
pgt_ieee80211_send_mgmt(struct ieee80211com *ic, struct ieee80211_node *ni,
- int type, int arg)
+ int type, int arg1, int arg2)
{
return (EOPNOTSUPP);
}
diff --git a/sys/dev/pci/if_ipw.c b/sys/dev/pci/if_ipw.c
index 402052accd6..3ae57311243 100644
--- a/sys/dev/pci/if_ipw.c
+++ b/sys/dev/pci/if_ipw.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: if_ipw.c,v 1.83 2008/12/22 18:20:47 damien Exp $ */
+/* $OpenBSD: if_ipw.c,v 1.84 2009/01/26 19:09:41 damien Exp $ */
/*-
* Copyright (c) 2004-2008
@@ -84,7 +84,7 @@ void ipw_tx_intr(struct ipw_softc *);
int ipw_intr(void *);
int ipw_cmd(struct ipw_softc *, uint32_t, void *, uint32_t);
int ipw_send_mgmt(struct ieee80211com *, struct ieee80211_node *,
- int, int);
+ int, int, int);
int ipw_tx_start(struct ifnet *, struct mbuf *,
struct ieee80211_node *);
void ipw_start(struct ifnet *);
@@ -1115,7 +1115,7 @@ ipw_cmd(struct ipw_softc *sc, uint32_t type, void *data, uint32_t len)
/* ARGSUSED */
int
ipw_send_mgmt(struct ieee80211com *ic, struct ieee80211_node *ni, int type,
- int arg)
+ int arg1, int arg2)
{
return EOPNOTSUPP;
}
diff --git a/sys/dev/pci/if_iwi.c b/sys/dev/pci/if_iwi.c
index 145ccaceb9d..1810a3e0828 100644
--- a/sys/dev/pci/if_iwi.c
+++ b/sys/dev/pci/if_iwi.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: if_iwi.c,v 1.98 2008/12/22 18:20:47 damien Exp $ */
+/* $OpenBSD: if_iwi.c,v 1.99 2009/01/26 19:09:41 damien Exp $ */
/*-
* Copyright (c) 2004-2008
@@ -100,7 +100,7 @@ void iwi_tx_intr(struct iwi_softc *, struct iwi_tx_ring *);
int iwi_intr(void *);
int iwi_cmd(struct iwi_softc *, uint8_t, void *, uint8_t, int);
int iwi_send_mgmt(struct ieee80211com *, struct ieee80211_node *,
- int, int);
+ int, int, int);
int iwi_tx_start(struct ifnet *, struct mbuf *,
struct ieee80211_node *);
void iwi_start(struct ifnet *);
@@ -1221,7 +1221,7 @@ iwi_cmd(struct iwi_softc *sc, uint8_t type, void *data, uint8_t len, int async)
/* ARGSUSED */
int
iwi_send_mgmt(struct ieee80211com *ic, struct ieee80211_node *ni, int type,
- int arg)
+ int arg1, int arg2)
{
return EOPNOTSUPP;
}