Search Linux Wireless

Re: [PATCH 02/15] mac80211: adding 802.11n definitions in ieee80211.h

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, 2007-11-14 at 19:57 +0200, Ron Rindjunsky wrote:
> This patch adds several structs and definitions to ieee80211.h
> to support 802.11n draft specifications.
> As 802.11n depends on and extends the 802.11e standard in several issues,
> there are also several definitions that belong to 802.11e.
> 
> Signed-off-by: Ron Rindjunsky <ron.rindjunsky@xxxxxxxxx>

Thanks, looks good.

I think we can merge this one if only to reduce the working set. Still
discussing about deaggregation though, see other mail in reply to Guy.

Acked-by: Johannes Berg <johannes@xxxxxxxxxxxxxxxx>

> ---
>  include/linux/ieee80211.h |  117 +++++++++++++++++++++++++++++++++++++++++++++
>  1 files changed, 117 insertions(+), 0 deletions(-)
> 
> Index: wl2_6_24_HT/include/linux/ieee80211.h
> ===================================================================
> --- wl2_6_24_HT.orig/include/linux/ieee80211.h
> +++ wl2_6_24_HT/include/linux/ieee80211.h
> @@ -54,6 +54,8 @@
>  #define IEEE80211_STYPE_ACTION		0x00D0
>  
>  /* control */
> +#define IEEE80211_STYPE_BACK_REQ	0x0080
> +#define IEEE80211_STYPE_BACK		0x0090
>  #define IEEE80211_STYPE_PSPOLL		0x00A0
>  #define IEEE80211_STYPE_RTS		0x00B0
>  #define IEEE80211_STYPE_CTS		0x00C0
> @@ -185,6 +187,25 @@ struct ieee80211_mgmt {
>  					u8 new_chan;
>  					u8 switch_count;
>  				} __attribute__((packed)) chan_switch;
> +				struct{
> +					u8 action_code;
> +					u8 dialog_token;
> +					__le16 capab;
> +					__le16 timeout;
> +					__le16 start_seq_num;
> +				} __attribute__((packed)) addba_req;
> +				struct{
> +					u8 action_code;
> +					u8 dialog_token;
> +					__le16 status;
> +					__le16 capab;
> +					__le16 timeout;
> +				} __attribute__((packed)) addba_resp;
> +				struct{
> +					u8 action_code;
> +					__le16 params;
> +					__le16 reason_code;
> +				} __attribute__((packed)) delba;
>  			} u;
>  		} __attribute__ ((packed)) action;
>  	} u;
> @@ -205,6 +226,66 @@ struct ieee80211_cts {
>  	u8 ra[6];
>  } __attribute__ ((packed));
>  
> +/**
> + * struct ieee80211_bar - HT Block Ack Request
> + *
> + * This structure refers to "HT BlockAckReq" as 
> + * described in 802.11n draft section 7.2.1.7.1
> + */
> +struct ieee80211_bar {
> +	__le16 frame_control;
> +	__le16 duration;
> +	__u8 ra[6];
> +	__u8 ta[6];
> +	__u16 control;
> +	__u16 start_seq_num;
> +} __attribute__((packed));
> +
> +/**
> + * struct ieee80211_ht_cap - HT capabilities
> + *
> + * This structure refers to "HT capabilities element" as 
> + * described in 802.11n draft section 7.3.2.52
> + */
> +struct ieee80211_ht_cap {
> +	__le16 cap_info;
> +	u8 ampdu_params_info;
> +	u8 supp_mcs_set[16];
> +	__le16 extended_ht_cap_info;
> +	__le32 tx_BF_cap_info;
> +	u8 antenna_selection_info;
> +} __attribute__ ((packed));
> +
> +/**
> + * struct ieee80211_ht_cap - HT additional information
> + *
> + * This structure refers to "HT information element" as 
> + * described in 802.11n draft section 7.3.2.53
> + */
> +struct ieee80211_ht_addt_info {
> +	u8 control_chan;
> +	u8 ht_param;
> +	__le16 operation_mode;
> +	__le16 stbc_param;
> +	u8 basic_set[16];
> +} __attribute__ ((packed));
> +
> +/* 802.11n HT capabilities masks */
> +#define IEEE80211_HT_CAP_SUP_WIDTH		0x0002
> +#define IEEE80211_HT_CAP_MIMO_PS		0x000C
> +#define IEEE80211_HT_CAP_GRN_FLD		0x0010
> +#define IEEE80211_HT_CAP_SGI_20			0x0020
> +#define IEEE80211_HT_CAP_SGI_40			0x0040
> +#define IEEE80211_HT_CAP_DELAY_BA		0x0400
> +#define IEEE80211_HT_CAP_MAX_AMSDU		0x0800
> +#define IEEE80211_HT_CAP_AMPDU_FACTOR		0x03
> +#define IEEE80211_HT_CAP_AMPDU_DENSITY		0x1C
> +/* 802.11n HT IE masks */
> +#define IEEE80211_HT_IE_CHA_SEC_OFFSET		0x03
> +#define IEEE80211_HT_IE_CHA_WIDTH		0x04
> +#define IEEE80211_HT_IE_HT_PROTECTION		0x0003
> +#define IEEE80211_HT_IE_NON_GF_STA_PRSNT	0x0004
> +#define IEEE80211_HT_IE_NON_HT_STA_PRSNT	0x0010
>  
>  /* Authentication algorithms */
>  #define WLAN_AUTH_OPEN 0
> @@ -271,6 +352,18 @@ enum ieee80211_statuscode {
>  	WLAN_STATUS_UNSUPP_RSN_VERSION = 44,
>  	WLAN_STATUS_INVALID_RSN_IE_CAP = 45,
>  	WLAN_STATUS_CIPHER_SUITE_REJECTED = 46,
> +	/* 802.11e */
> +	WLAN_STATUS_UNSPECIFIED_QOS = 32,
> +	WLAN_STATUS_ASSOC_DENIED_NOBANDWIDTH = 33,
> +	WLAN_STATUS_ASSOC_DENIED_LOWACK = 34,
> +	WLAN_STATUS_ASSOC_DENIED_UNSUPP_QOS = 35,
> +	WLAN_STATUS_REQUEST_DECLINED = 37,
> +	WLAN_STATUS_INVALID_QOS_PARAM = 38,
> +	WLAN_STATUS_CHANGE_TSPEC = 39,
> +	WLAN_STATUS_WAIT_TS_DELAY = 47,
> +	WLAN_STATUS_NO_DIRECT_LINK = 48,
> +	WLAN_STATUS_STA_NOT_PRESENT = 49,
> +	WLAN_STATUS_STA_NOT_QSTA = 50,
>  };
>  
> 
> @@ -301,6 +394,16 @@ enum ieee80211_reasoncode {
>  	WLAN_REASON_INVALID_RSN_IE_CAP = 22,
>  	WLAN_REASON_IEEE8021X_FAILED = 23,
>  	WLAN_REASON_CIPHER_SUITE_REJECTED = 24,
> +	/* 802.11e */
> +	WLAN_REASON_DISASSOC_UNSPECIFIED_QOS = 32,
> +	WLAN_REASON_DISASSOC_QAP_NO_BANDWIDTH = 33,
> +	WLAN_REASON_DISASSOC_LOW_ACK = 34,
> +	WLAN_REASON_DISASSOC_QAP_EXCEED_TXOP = 35,
> +	WLAN_REASON_QSTA_LEAVE_QBSS = 36,
> +	WLAN_REASON_QSTA_NOT_USE = 37,
> +	WLAN_REASON_QSTA_REQUIRE_SETUP = 38,
> +	WLAN_REASON_QSTA_TIMEOUT = 39,
> +	WLAN_REASON_QSTA_CIPHER_NOT_SUPP = 45,
>  };
>  
> 
> @@ -319,6 +422,15 @@ enum ieee80211_eid {
>  	WLAN_EID_HP_PARAMS = 8,
>  	WLAN_EID_HP_TABLE = 9,
>  	WLAN_EID_REQUEST = 10,
> +	/* 802.11e */
> +	WLAN_EID_QBSS_LOAD = 11,
> +	WLAN_EID_EDCA_PARAM_SET = 12,
> +	WLAN_EID_TSPEC = 13,
> +	WLAN_EID_TCLAS = 14,
> +	WLAN_EID_SCHEDULE = 15,
> +	WLAN_EID_TS_DELAY = 43,
> +	WLAN_EID_TCLAS_PROCESSING = 44,
> +	WLAN_EID_QOS_CAPA = 46,
>  	/* 802.11h */
>  	WLAN_EID_PWR_CONSTRAINT = 32,
>  	WLAN_EID_PWR_CAPABILITY = 33,
> @@ -333,6 +445,9 @@ enum ieee80211_eid {
>  	/* 802.11g */
>  	WLAN_EID_ERP_INFO = 42,
>  	WLAN_EID_EXT_SUPP_RATES = 50,
> +	/* 802.11n */
> +	WLAN_EID_HT_CAPABILITY = 45,
> +	WLAN_EID_HT_EXTRA_INFO = 61,
>  	/* 802.11i */
>  	WLAN_EID_RSN = 48,
>  	WLAN_EID_WPA = 221,
> @@ -341,6 +456,25 @@ enum ieee80211_eid {
>  	WLAN_EID_QOS_PARAMETER = 222
>  };
>  
> +/* Action category code */
> +enum ieee80211_category {
> +	WLAN_CATEGORY_SPECTRUM_MGMT = 0,
> +	WLAN_CATEGORY_QOS = 1,
> +	WLAN_CATEGORY_DLS = 2,
> +	WLAN_CATEGORY_BACK = 3,
> +	WLAN_CATEGORY_WMM = 17,
> +};
> +
> +/* BACK action code */
> +enum ieee80211_back_actioncode {
> +	WLAN_ACTION_ADDBA_REQ = 0,
> +	WLAN_ACTION_ADDBA_RESP = 1,
> +	WLAN_ACTION_DELBA = 2,
> +};
> +
> +/* A-MSDU 802.11n */
> +#define IEEE80211_QOS_CONTROL_A_MSDU_PRESENT 0x0080
> +
>  /* cipher suite selectors */
>  #define WLAN_CIPHER_SUITE_USE_GROUP	0x000FAC00
>  #define WLAN_CIPHER_SUITE_WEP40		0x000FAC01
> ---------------------------------------------------------------------
> Intel Israel (74) Limited
> 
> This e-mail and any attachments may contain confidential material for
> the sole use of the intended recipient(s). Any review or distribution
> by others is strictly prohibited. If you are not the intended
> recipient, please contact the sender and delete all copies.
> 

Attachment: signature.asc
Description: This is a digitally signed message part


[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]
  Powered by Linux