diff options
Diffstat (limited to 'drivers/staging/wlan-ng/p80211mgmt.h')
| -rw-r--r-- | drivers/staging/wlan-ng/p80211mgmt.h | 479 |
1 files changed, 212 insertions, 267 deletions
diff --git a/drivers/staging/wlan-ng/p80211mgmt.h b/drivers/staging/wlan-ng/p80211mgmt.h index 6cc16c3f8b1..3dd066ac034 100644 --- a/drivers/staging/wlan-ng/p80211mgmt.h +++ b/drivers/staging/wlan-ng/p80211mgmt.h @@ -91,7 +91,7 @@ * fall at the end of their respective frames). * 5a) The length field is set to include the last of the fixed and fixed * length fields. It may have to be updated for optional or variable -* length information elements. +* length information elements. * 6) Optional and variable length information elements are special cases * and must be handled individually by the client code. * -------------------------------------------------------------------- @@ -100,24 +100,10 @@ #ifndef _P80211MGMT_H #define _P80211MGMT_H -/*================================================================*/ -/* System Includes */ - -/*================================================================*/ -/* Project Includes */ - -#ifndef _WLAN_COMPAT_H -#include "wlan_compat.h" -#endif - -#ifndef _P80211HDR_H +#ifndef _P80211HDR_H #include "p80211hdr.h" #endif - -/*================================================================*/ -/* Constants */ - /*-- Information Element IDs --------------------*/ #define WLAN_EID_SSID 0 #define WLAN_EID_SUPP_RATES 1 @@ -160,8 +146,6 @@ #define WLAN_MGMT_STATUS_ASSOC_DENIED_NOPBCC 20 #define WLAN_MGMT_STATUS_ASSOC_DENIED_NOAGILITY 21 - - /*-- Auth Algorithm Field ---------------------------*/ #define WLAN_AUTH_ALG_OPENSYSTEM 0 #define WLAN_AUTH_ALG_SHAREDKEY 1 @@ -211,20 +195,16 @@ #define WLAN_DEAUTHEN_OFF_REASON 0 - -/*================================================================*/ -/* Macros */ - /*-- Capability Field ---------------------------*/ -#define WLAN_GET_MGMT_CAP_INFO_ESS(n) ((n) & BIT0) -#define WLAN_GET_MGMT_CAP_INFO_IBSS(n) (((n) & BIT1) >> 1) -#define WLAN_GET_MGMT_CAP_INFO_CFPOLLABLE(n) (((n) & BIT2) >> 2) -#define WLAN_GET_MGMT_CAP_INFO_CFPOLLREQ(n) (((n) & BIT3) >> 3) -#define WLAN_GET_MGMT_CAP_INFO_PRIVACY(n) (((n) & BIT4) >> 4) +#define WLAN_GET_MGMT_CAP_INFO_ESS(n) ((n) & BIT(0)) +#define WLAN_GET_MGMT_CAP_INFO_IBSS(n) (((n) & BIT(1)) >> 1) +#define WLAN_GET_MGMT_CAP_INFO_CFPOLLABLE(n) (((n) & BIT(2)) >> 2) +#define WLAN_GET_MGMT_CAP_INFO_CFPOLLREQ(n) (((n) & BIT(3)) >> 3) +#define WLAN_GET_MGMT_CAP_INFO_PRIVACY(n) (((n) & BIT(4)) >> 4) /* p80211b additions */ -#define WLAN_GET_MGMT_CAP_INFO_SHORT(n) (((n) & BIT5) >> 5) -#define WLAN_GET_MGMT_CAP_INFO_PBCC(n) (((n) & BIT6) >> 6) -#define WLAN_GET_MGMT_CAP_INFO_AGILITY(n) (((n) & BIT7) >> 7) +#define WLAN_GET_MGMT_CAP_INFO_SHORT(n) (((n) & BIT(5)) >> 5) +#define WLAN_GET_MGMT_CAP_INFO_PBCC(n) (((n) & BIT(6)) >> 6) +#define WLAN_GET_MGMT_CAP_INFO_AGILITY(n) (((n) & BIT(7)) >> 7) #define WLAN_SET_MGMT_CAP_INFO_ESS(n) (n) #define WLAN_SET_MGMT_CAP_INFO_IBSS(n) ((n) << 1) @@ -236,340 +216,305 @@ #define WLAN_SET_MGMT_CAP_INFO_PBCC(n) ((n) << 6) #define WLAN_SET_MGMT_CAP_INFO_AGILITY(n) ((n) << 7) - -/*================================================================*/ -/* Types */ - /*-- Information Element Types --------------------*/ /* prototype structure, all IEs start with these members */ -typedef struct wlan_ie -{ - u8 eid; - u8 len; -} __WLAN_ATTRIB_PACK__ wlan_ie_t; +struct wlan_ie { + u8 eid; + u8 len; +} __packed; /*-- Service Set Identity (SSID) -----------------*/ -typedef struct wlan_ie_ssid -{ - u8 eid; - u8 len; - u8 ssid[1]; /* may be zero, ptrs may overlap */ -} __WLAN_ATTRIB_PACK__ wlan_ie_ssid_t; +struct wlan_ie_ssid { + u8 eid; + u8 len; + u8 ssid[1]; /* may be zero, ptrs may overlap */ +} __packed; /*-- Supported Rates -----------------------------*/ -typedef struct wlan_ie_supp_rates -{ - u8 eid; - u8 len; - u8 rates[1]; /* had better be at LEAST one! */ -} __WLAN_ATTRIB_PACK__ wlan_ie_supp_rates_t; +struct wlan_ie_supp_rates { + u8 eid; + u8 len; + u8 rates[1]; /* had better be at LEAST one! */ +} __packed; /*-- FH Parameter Set ----------------------------*/ -typedef struct wlan_ie_fh_parms -{ - u8 eid; - u8 len; - u16 dwell; - u8 hopset; - u8 hoppattern; - u8 hopindex; -} __WLAN_ATTRIB_PACK__ wlan_ie_fh_parms_t; +struct wlan_ie_fh_parms { + u8 eid; + u8 len; + u16 dwell; + u8 hopset; + u8 hoppattern; + u8 hopindex; +} __packed; /*-- DS Parameter Set ----------------------------*/ -typedef struct wlan_ie_ds_parms -{ - u8 eid; - u8 len; - u8 curr_ch; -} __WLAN_ATTRIB_PACK__ wlan_ie_ds_parms_t; +struct wlan_ie_ds_parms { + u8 eid; + u8 len; + u8 curr_ch; +} __packed; /*-- CF Parameter Set ----------------------------*/ -typedef struct wlan_ie_cf_parms -{ - u8 eid; - u8 len; - u8 cfp_cnt; - u8 cfp_period; - u16 cfp_maxdur; - u16 cfp_durremaining; -} __WLAN_ATTRIB_PACK__ wlan_ie_cf_parms_t; +struct wlan_ie_cf_parms { + u8 eid; + u8 len; + u8 cfp_cnt; + u8 cfp_period; + u16 cfp_maxdur; + u16 cfp_durremaining; +} __packed; /*-- TIM ------------------------------------------*/ -typedef struct wlan_ie_tim -{ - u8 eid; - u8 len; - u8 dtim_cnt; - u8 dtim_period; - u8 bitmap_ctl; - u8 virt_bm[1]; -} __WLAN_ATTRIB_PACK__ wlan_ie_tim_t; +struct wlan_ie_tim { + u8 eid; + u8 len; + u8 dtim_cnt; + u8 dtim_period; + u8 bitmap_ctl; + u8 virt_bm[1]; +} __packed; /*-- IBSS Parameter Set ---------------------------*/ -typedef struct wlan_ie_ibss_parms -{ - u8 eid; - u8 len; - u16 atim_win; -} __WLAN_ATTRIB_PACK__ wlan_ie_ibss_parms_t; +struct wlan_ie_ibss_parms { + u8 eid; + u8 len; + u16 atim_win; +} __packed; /*-- Challenge Text ------------------------------*/ -typedef struct wlan_ie_challenge -{ - u8 eid; - u8 len; - u8 challenge[1]; -} __WLAN_ATTRIB_PACK__ wlan_ie_challenge_t; +struct wlan_ie_challenge { + u8 eid; + u8 len; + u8 challenge[1]; +} __packed; /*-------------------------------------------------*/ /* Frame Types */ /* prototype structure, all mgmt frame types will start with these members */ -typedef struct wlan_fr_mgmt -{ - u16 type; - u16 len; /* DOES NOT include CRC !!!!*/ - u8 *buf; - p80211_hdr_t *hdr; +struct wlan_fr_mgmt { + u16 type; + u16 len; /* DOES NOT include CRC !!!! */ + u8 *buf; + union p80211_hdr *hdr; /* used for target specific data, skb in Linux */ - void *priv; + void *priv; /*-- fixed fields -----------*/ /*-- info elements ----------*/ -} wlan_fr_mgmt_t; +}; /*-- Beacon ---------------------------------------*/ -typedef struct wlan_fr_beacon -{ - u16 type; - u16 len; - u8 *buf; - p80211_hdr_t *hdr; +struct wlan_fr_beacon { + u16 type; + u16 len; + u8 *buf; + union p80211_hdr *hdr; /* used for target specific data, skb in Linux */ - void *priv; + void *priv; /*-- fixed fields -----------*/ - u64 *ts; - u16 *bcn_int; - u16 *cap_info; + u64 *ts; + u16 *bcn_int; + u16 *cap_info; /*-- info elements ----------*/ - wlan_ie_ssid_t *ssid; - wlan_ie_supp_rates_t *supp_rates; - wlan_ie_fh_parms_t *fh_parms; - wlan_ie_ds_parms_t *ds_parms; - wlan_ie_cf_parms_t *cf_parms; - wlan_ie_ibss_parms_t *ibss_parms; - wlan_ie_tim_t *tim; - -} wlan_fr_beacon_t; + struct wlan_ie_ssid *ssid; + struct wlan_ie_supp_rates *supp_rates; + struct wlan_ie_fh_parms *fh_parms; + struct wlan_ie_ds_parms *ds_parms; + struct wlan_ie_cf_parms *cf_parms; + struct wlan_ie_ibss_parms *ibss_parms; + struct wlan_ie_tim *tim; +}; /*-- IBSS ATIM ------------------------------------*/ -typedef struct wlan_fr_ibssatim -{ - u16 type; - u16 len; - u8* buf; - p80211_hdr_t *hdr; +struct wlan_fr_ibssatim { + u16 type; + u16 len; + u8 *buf; + union p80211_hdr *hdr; /* used for target specific data, skb in Linux */ - void *priv; + void *priv; /*-- fixed fields -----------*/ /*-- info elements ----------*/ /* this frame type has a null body */ -} wlan_fr_ibssatim_t; +}; /*-- Disassociation -------------------------------*/ -typedef struct wlan_fr_disassoc -{ - u16 type; - u16 len; - u8 *buf; - p80211_hdr_t *hdr; +struct wlan_fr_disassoc { + u16 type; + u16 len; + u8 *buf; + union p80211_hdr *hdr; /* used for target specific data, skb in Linux */ - void *priv; + void *priv; /*-- fixed fields -----------*/ - u16 *reason; + u16 *reason; /*-- info elements ----------*/ -} wlan_fr_disassoc_t; +}; /*-- Association Request --------------------------*/ -typedef struct wlan_fr_assocreq -{ - u16 type; - u16 len; - u8* buf; - p80211_hdr_t *hdr; +struct wlan_fr_assocreq { + u16 type; + u16 len; + u8 *buf; + union p80211_hdr *hdr; /* used for target specific data, skb in Linux */ - void *priv; + void *priv; /*-- fixed fields -----------*/ - u16 *cap_info; - u16 *listen_int; + u16 *cap_info; + u16 *listen_int; /*-- info elements ----------*/ - wlan_ie_ssid_t *ssid; - wlan_ie_supp_rates_t *supp_rates; + struct wlan_ie_ssid *ssid; + struct wlan_ie_supp_rates *supp_rates; -} wlan_fr_assocreq_t; +}; /*-- Association Response -------------------------*/ -typedef struct wlan_fr_assocresp -{ - u16 type; - u16 len; - u8 *buf; - p80211_hdr_t *hdr; +struct wlan_fr_assocresp { + u16 type; + u16 len; + u8 *buf; + union p80211_hdr *hdr; /* used for target specific data, skb in Linux */ - void *priv; + void *priv; /*-- fixed fields -----------*/ - u16 *cap_info; - u16 *status; - u16 *aid; + u16 *cap_info; + u16 *status; + u16 *aid; /*-- info elements ----------*/ - wlan_ie_supp_rates_t *supp_rates; + struct wlan_ie_supp_rates *supp_rates; -} wlan_fr_assocresp_t; +}; /*-- Reassociation Request ------------------------*/ -typedef struct wlan_fr_reassocreq -{ - u16 type; - u16 len; - u8 *buf; - p80211_hdr_t *hdr; +struct wlan_fr_reassocreq { + u16 type; + u16 len; + u8 *buf; + union p80211_hdr *hdr; /* used for target specific data, skb in Linux */ - void *priv; + void *priv; /*-- fixed fields -----------*/ - u16 *cap_info; - u16 *listen_int; - u8 *curr_ap; + u16 *cap_info; + u16 *listen_int; + u8 *curr_ap; /*-- info elements ----------*/ - wlan_ie_ssid_t *ssid; - wlan_ie_supp_rates_t *supp_rates; + struct wlan_ie_ssid *ssid; + struct wlan_ie_supp_rates *supp_rates; -} wlan_fr_reassocreq_t; +}; /*-- Reassociation Response -----------------------*/ -typedef struct wlan_fr_reassocresp -{ - u16 type; - u16 len; - u8 *buf; - p80211_hdr_t *hdr; +struct wlan_fr_reassocresp { + u16 type; + u16 len; + u8 *buf; + union p80211_hdr *hdr; /* used for target specific data, skb in Linux */ - void *priv; + void *priv; /*-- fixed fields -----------*/ - u16 *cap_info; - u16 *status; - u16 *aid; + u16 *cap_info; + u16 *status; + u16 *aid; /*-- info elements ----------*/ - wlan_ie_supp_rates_t *supp_rates; + struct wlan_ie_supp_rates *supp_rates; -} wlan_fr_reassocresp_t; +}; /*-- Probe Request --------------------------------*/ -typedef struct wlan_fr_probereq -{ - u16 type; - u16 len; - u8 *buf; - p80211_hdr_t *hdr; +struct wlan_fr_probereq { + u16 type; + u16 len; + u8 *buf; + union p80211_hdr *hdr; /* used for target specific data, skb in Linux */ - void *priv; + void *priv; /*-- fixed fields -----------*/ /*-- info elements ----------*/ - wlan_ie_ssid_t *ssid; - wlan_ie_supp_rates_t *supp_rates; + struct wlan_ie_ssid *ssid; + struct wlan_ie_supp_rates *supp_rates; -} wlan_fr_probereq_t; +}; /*-- Probe Response -------------------------------*/ -typedef struct wlan_fr_proberesp -{ - u16 type; - u16 len; - u8 *buf; - p80211_hdr_t *hdr; +struct wlan_fr_proberesp { + u16 type; + u16 len; + u8 *buf; + union p80211_hdr *hdr; /* used for target specific data, skb in Linux */ - void *priv; + void *priv; /*-- fixed fields -----------*/ - u64 *ts; - u16 *bcn_int; - u16 *cap_info; + u64 *ts; + u16 *bcn_int; + u16 *cap_info; /*-- info elements ----------*/ - wlan_ie_ssid_t *ssid; - wlan_ie_supp_rates_t *supp_rates; - wlan_ie_fh_parms_t *fh_parms; - wlan_ie_ds_parms_t *ds_parms; - wlan_ie_cf_parms_t *cf_parms; - wlan_ie_ibss_parms_t *ibss_parms; -} wlan_fr_proberesp_t; + struct wlan_ie_ssid *ssid; + struct wlan_ie_supp_rates *supp_rates; + struct wlan_ie_fh_parms *fh_parms; + struct wlan_ie_ds_parms *ds_parms; + struct wlan_ie_cf_parms *cf_parms; + struct wlan_ie_ibss_parms *ibss_parms; +}; /*-- Authentication -------------------------------*/ -typedef struct wlan_fr_authen -{ - u16 type; - u16 len; - u8 *buf; - p80211_hdr_t *hdr; +struct wlan_fr_authen { + u16 type; + u16 len; + u8 *buf; + union p80211_hdr *hdr; /* used for target specific data, skb in Linux */ - void *priv; + void *priv; /*-- fixed fields -----------*/ - u16 *auth_alg; - u16 *auth_seq; - u16 *status; + u16 *auth_alg; + u16 *auth_seq; + u16 *status; /*-- info elements ----------*/ - wlan_ie_challenge_t *challenge; + struct wlan_ie_challenge *challenge; -} wlan_fr_authen_t; +}; /*-- Deauthenication -----------------------------*/ -typedef struct wlan_fr_deauthen -{ - u16 type; - u16 len; - u8 *buf; - p80211_hdr_t *hdr; +struct wlan_fr_deauthen { + u16 type; + u16 len; + u8 *buf; + union p80211_hdr *hdr; /* used for target specific data, skb in Linux */ - void *priv; + void *priv; /*-- fixed fields -----------*/ - u16 *reason; + u16 *reason; /*-- info elements ----------*/ -} wlan_fr_deauthen_t; - - -/*================================================================*/ -/* Extern Declarations */ - - -/*================================================================*/ -/* Function Declarations */ - -void wlan_mgmt_encode_beacon( wlan_fr_beacon_t *f ); -void wlan_mgmt_decode_beacon( wlan_fr_beacon_t *f ); -void wlan_mgmt_encode_disassoc( wlan_fr_disassoc_t *f ); -void wlan_mgmt_decode_disassoc( wlan_fr_disassoc_t *f ); -void wlan_mgmt_encode_assocreq( wlan_fr_assocreq_t *f ); -void wlan_mgmt_decode_assocreq( wlan_fr_assocreq_t *f ); -void wlan_mgmt_encode_assocresp( wlan_fr_assocresp_t *f ); -void wlan_mgmt_decode_assocresp( wlan_fr_assocresp_t *f ); -void wlan_mgmt_encode_reassocreq( wlan_fr_reassocreq_t *f ); -void wlan_mgmt_decode_reassocreq( wlan_fr_reassocreq_t *f ); -void wlan_mgmt_encode_reassocresp( wlan_fr_reassocresp_t *f ); -void wlan_mgmt_decode_reassocresp( wlan_fr_reassocresp_t *f ); -void wlan_mgmt_encode_probereq( wlan_fr_probereq_t *f ); -void wlan_mgmt_decode_probereq( wlan_fr_probereq_t *f ); -void wlan_mgmt_encode_proberesp( wlan_fr_proberesp_t *f ); -void wlan_mgmt_decode_proberesp( wlan_fr_proberesp_t *f ); -void wlan_mgmt_encode_authen( wlan_fr_authen_t *f ); -void wlan_mgmt_decode_authen( wlan_fr_authen_t *f ); -void wlan_mgmt_encode_deauthen( wlan_fr_deauthen_t *f ); -void wlan_mgmt_decode_deauthen( wlan_fr_deauthen_t *f ); - +}; + +void wlan_mgmt_encode_beacon(struct wlan_fr_beacon *f); +void wlan_mgmt_decode_beacon(struct wlan_fr_beacon *f); +void wlan_mgmt_encode_disassoc(struct wlan_fr_disassoc *f); +void wlan_mgmt_decode_disassoc(struct wlan_fr_disassoc *f); +void wlan_mgmt_encode_assocreq(struct wlan_fr_assocreq *f); +void wlan_mgmt_decode_assocreq(struct wlan_fr_assocreq *f); +void wlan_mgmt_encode_assocresp(struct wlan_fr_assocresp *f); +void wlan_mgmt_decode_assocresp(struct wlan_fr_assocresp *f); +void wlan_mgmt_encode_reassocreq(struct wlan_fr_reassocreq *f); +void wlan_mgmt_decode_reassocreq(struct wlan_fr_reassocreq *f); +void wlan_mgmt_encode_reassocresp(struct wlan_fr_reassocresp *f); +void wlan_mgmt_decode_reassocresp(struct wlan_fr_reassocresp *f); +void wlan_mgmt_encode_probereq(struct wlan_fr_probereq *f); +void wlan_mgmt_decode_probereq(struct wlan_fr_probereq *f); +void wlan_mgmt_encode_proberesp(struct wlan_fr_proberesp *f); +void wlan_mgmt_decode_proberesp(struct wlan_fr_proberesp *f); +void wlan_mgmt_encode_authen(struct wlan_fr_authen *f); +void wlan_mgmt_decode_authen(struct wlan_fr_authen *f); +void wlan_mgmt_encode_deauthen(struct wlan_fr_deauthen *f); +void wlan_mgmt_decode_deauthen(struct wlan_fr_deauthen *f); #endif /* _P80211MGMT_H */ |
