|
@@ -25,6 +25,77 @@
|
|
|
#include <qdf_types.h>
|
|
|
#include <osdep.h>
|
|
|
|
|
|
+/* Subfields in Frame Control field (except Type and Subtype) */
|
|
|
+#define WLAN_FC0_PVER 0x0003
|
|
|
+#define WLAN_FC1_DIR_MASK 0x03
|
|
|
+#define WLAN_FC1_TODS 0x01
|
|
|
+#define WLAN_FC1_FROMDS 0x02
|
|
|
+#define WLAN_FC1_DSTODS 0x03
|
|
|
+#define WLAN_FC1_MOREFRAG 0x04
|
|
|
+#define WLAN_FC1_RETRY 0x08
|
|
|
+#define WLAN_FC1_PWRMGT 0x10
|
|
|
+#define WLAN_FC1_MOREDATA 0x20
|
|
|
+#define WLAN_FC1_ISWEP 0x40
|
|
|
+#define WLAN_FC1_ORDER 0x80
|
|
|
+
|
|
|
+/* Definitions for Type subfield in Frame Control field */
|
|
|
+#define WLAN_FC0_TYPE_MGMT 0
|
|
|
+#define WLAN_FC0_TYPE_CTRL 1
|
|
|
+#define WLAN_FC0_TYPE_DATA 2
|
|
|
+
|
|
|
+/* Definitions for management frame subtypes in Frame Control field */
|
|
|
+#define WLAN_FC0_STYPE_ASSOC_REQ 0
|
|
|
+#define WLAN_FC0_STYPE_ASSOC_RESP 1
|
|
|
+#define WLAN_FC0_STYPE_REASSOC_REQ 2
|
|
|
+#define WLAN_FC0_STYPE_REASSOC_RESP 3
|
|
|
+#define WLAN_FC0_STYPE_PROBE_REQ 4
|
|
|
+#define WLAN_FC0_STYPE_PROBE_RESP 5
|
|
|
+#define WLAN_FC0_STYPE_BEACON 8
|
|
|
+#define WLAN_FC0_STYPE_ATIM 9
|
|
|
+#define WLAN_FC0_STYPE_DISASSOC 10
|
|
|
+#define WLAN_FC0_STYPE_AUTH 11
|
|
|
+#define WLAN_FC0_STYPE_DEAUTH 12
|
|
|
+#define WLAN_FC0_STYPE_ACTION 13
|
|
|
+
|
|
|
+/* Definitions for control frame subtypes in Frame Control field */
|
|
|
+#define WLAN_FC0_STYPE_PSPOLL 10
|
|
|
+#define WLAN_FC0_STYPE_RTS 11
|
|
|
+#define WLAN_FC0_STYPE_CTS 12
|
|
|
+#define WLAN_FC0_STYPE_ACK 13
|
|
|
+#define WLAN_FC0_STYPE_CFEND 14
|
|
|
+#define WLAN_FC0_STYPE_CFENDACK 15
|
|
|
+
|
|
|
+/* Definitions for data frame subtypes in Frame Control field */
|
|
|
+#define WLAN_FC0_STYPE_DATA 0
|
|
|
+#define WLAN_FC0_STYPE_DATA_CFACK 1
|
|
|
+#define WLAN_FC0_STYPE_DATA_CFPOLL 2
|
|
|
+#define WLAN_FC0_STYPE_DATA_CFACKPOLL 3
|
|
|
+#define WLAN_FC0_STYPE_NULLFUNC 4
|
|
|
+#define WLAN_FC0_STYPE_CFACK 5
|
|
|
+#define WLAN_FC0_STYPE_CFPOLL 6
|
|
|
+#define WLAN_FC0_STYPE_CFACKPOLL 7
|
|
|
+#define WLAN_FC0_STYPE_QOS_DATA 8
|
|
|
+#define WLAN_FC0_STYPE_QOS_DATA_CFACK 9
|
|
|
+#define WLAN_FC0_STYPE_QOS_DATA_CFPOLL 10
|
|
|
+#define WLAN_FC0_STYPE_QOS_DATA_CFACKPOLL 11
|
|
|
+#define WLAN_FC0_STYPE_QOS_NULL 12
|
|
|
+#define WLAN_FC0_STYPE_QOS_CFPOLL 14
|
|
|
+#define WLAN_FC0_STYPE_QOS_CFACKPOLL 15
|
|
|
+
|
|
|
+/* Get Type/Subtype subfields in Frame Control field */
|
|
|
+#define WLAN_FC0_GET_TYPE(fc) (((fc) & 0x0c) >> 2)
|
|
|
+#define WLAN_FC0_GET_STYPE(fc) (((fc) & 0xf0) >> 4)
|
|
|
+
|
|
|
+/* Definitions related to sequence number processing, TID, etc. */
|
|
|
+#define WLAN_INVALID_MGMT_SEQ 0xffff
|
|
|
+#define WLAN_SEQ_MASK 0x0fff
|
|
|
+#define WLAN_GET_SEQ_FRAG(seq) ((seq) & (BIT(3) | BIT(2) | BIT(1) | BIT(0)))
|
|
|
+#define WLAN_GET_SEQ_SEQ(seq) \
|
|
|
+ (((seq) & (~(BIT(3) | BIT(2) | BIT(1) | BIT(0)))) >> 4)
|
|
|
+#define WLAN_QOS_TID_MASK 0x0f
|
|
|
+#define WLAN_TID_SIZE 17
|
|
|
+#define WLAN_NONQOS_SEQ 16
|
|
|
+
|
|
|
/* Length of Timestamp field */
|
|
|
#define WLAN_TIMESTAMP_LEN 8
|
|
|
|