diff options
author | sam <sam@FreeBSD.org> | 2009-07-05 17:59:19 +0000 |
---|---|---|
committer | sam <sam@FreeBSD.org> | 2009-07-05 17:59:19 +0000 |
commit | edf89f716262ec28b66e3ba8f49c4a1c11ff0f4c (patch) | |
tree | 2b0355c63191e76e8d9a8248e3dcb6081298f0c7 /sys/net80211/ieee80211_var.h | |
parent | c67dff7aca2dbc37c9abe5f0d576016dd2b9905c (diff) | |
download | FreeBSD-src-edf89f716262ec28b66e3ba8f49c4a1c11ff0f4c.zip FreeBSD-src-edf89f716262ec28b66e3ba8f49c4a1c11ff0f4c.tar.gz |
Revamp 802.11 action frame handling:
o add a new facility for components to register send+recv handlers
o ieee80211_send_action and ieee80211_recv_action now use the registered
handlers to dispatch operations
o rev ieee80211_send_action api to enable passing arbitrary data
o rev ieee80211_recv_action api to pass the 802.11 frame header as it may
be difficult to locate
o update existing IEEE80211_ACTION_CAT_BA and IEEE80211_ACTION_CAT_HT handling
o update mwl for api rev
Reviewed by: rpaulo
Approved by: re (kensmith)
Diffstat (limited to 'sys/net80211/ieee80211_var.h')
-rw-r--r-- | sys/net80211/ieee80211_var.h | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/sys/net80211/ieee80211_var.h b/sys/net80211/ieee80211_var.h index d0cfe9f..8859c2f 100644 --- a/sys/net80211/ieee80211_var.h +++ b/sys/net80211/ieee80211_var.h @@ -112,6 +112,7 @@ struct ieee80211_rate_table; struct ieee80211_tx_ampdu; struct ieee80211_rx_ampdu; struct ieee80211_superg; +struct ieee80211_frame; struct ieee80211com { struct ifnet *ic_ifp; /* associated device */ @@ -282,11 +283,11 @@ struct ieee80211com { * driver passes out-of-order frames to ieee80211_input * from an assocated HT station. */ - void (*ic_recv_action)(struct ieee80211_node *, + int (*ic_recv_action)(struct ieee80211_node *, + const struct ieee80211_frame *, const uint8_t *frm, const uint8_t *efrm); int (*ic_send_action)(struct ieee80211_node *, - int category, int action, - uint16_t args[4]); + int category, int action, void *); /* check if A-MPDU should be enabled this station+ac */ int (*ic_ampdu_enable)(struct ieee80211_node *, struct ieee80211_tx_ampdu *); |