1
0
mirror of https://github.com/abperiasamy/rtl8812AU_8821AU_linux.git synced 2025-10-19 17:11:09 +02:00
This commit is contained in:
Chen Minqiang
2016-10-10 02:54:43 +08:00
committed by Harshavardhana
parent c962f7a88d
commit 00aedbde5c
408 changed files with 192446 additions and 81116 deletions

View File

@@ -1,7 +1,7 @@
/******************************************************************************
*
* Copyright(c) 2007 - 2012 Realtek Corporation. All rights reserved.
*
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of version 2 of the GNU General Public License as
* published by the Free Software Foundation.
@@ -48,6 +48,7 @@
#define WLAN_MIN_ETHFRM_LEN 60
#define WLAN_MAX_ETHFRM_LEN 1514
#define WLAN_ETHHDR_LEN 14
#define WLAN_WMM_LEN 24
#define P80211CAPTURE_VERSION 0x80211001
@@ -63,46 +64,48 @@ enum WIFI_FRAME_TYPE {
WIFI_MGT_TYPE = (0),
WIFI_CTRL_TYPE = (BIT(2)),
WIFI_DATA_TYPE = (BIT(3)),
WIFI_QOS_DATA_TYPE = (BIT(7)|BIT(3)), //!< QoS Data
WIFI_QOS_DATA_TYPE = (BIT(7)|BIT(3)), //!< QoS Data
};
enum WIFI_FRAME_SUBTYPE {
// below is for mgt frame
WIFI_ASSOCREQ = (0 | WIFI_MGT_TYPE),
WIFI_ASSOCRSP = (BIT(4) | WIFI_MGT_TYPE),
WIFI_REASSOCREQ = (BIT(5) | WIFI_MGT_TYPE),
WIFI_REASSOCRSP = (BIT(5) | BIT(4) | WIFI_MGT_TYPE),
WIFI_PROBEREQ = (BIT(6) | WIFI_MGT_TYPE),
WIFI_PROBERSP = (BIT(6) | BIT(4) | WIFI_MGT_TYPE),
WIFI_BEACON = (BIT(7) | WIFI_MGT_TYPE),
WIFI_ATIM = (BIT(7) | BIT(4) | WIFI_MGT_TYPE),
WIFI_DISASSOC = (BIT(7) | BIT(5) | WIFI_MGT_TYPE),
WIFI_AUTH = (BIT(7) | BIT(5) | BIT(4) | WIFI_MGT_TYPE),
WIFI_DEAUTH = (BIT(7) | BIT(6) | WIFI_MGT_TYPE),
WIFI_ACTION = (BIT(7) | BIT(6) | BIT(4) | WIFI_MGT_TYPE),
// below is for mgt frame
WIFI_ASSOCREQ = (0 | WIFI_MGT_TYPE),
WIFI_ASSOCRSP = (BIT(4) | WIFI_MGT_TYPE),
WIFI_REASSOCREQ = (BIT(5) | WIFI_MGT_TYPE),
WIFI_REASSOCRSP = (BIT(5) | BIT(4) | WIFI_MGT_TYPE),
WIFI_PROBEREQ = (BIT(6) | WIFI_MGT_TYPE),
WIFI_PROBERSP = (BIT(6) | BIT(4) | WIFI_MGT_TYPE),
WIFI_BEACON = (BIT(7) | WIFI_MGT_TYPE),
WIFI_ATIM = (BIT(7) | BIT(4) | WIFI_MGT_TYPE),
WIFI_DISASSOC = (BIT(7) | BIT(5) | WIFI_MGT_TYPE),
WIFI_AUTH = (BIT(7) | BIT(5) | BIT(4) | WIFI_MGT_TYPE),
WIFI_DEAUTH = (BIT(7) | BIT(6) | WIFI_MGT_TYPE),
WIFI_ACTION = (BIT(7) | BIT(6) | BIT(4) | WIFI_MGT_TYPE),
WIFI_ACTION_NOACK = (BIT(7) | BIT(6) | BIT(5) | WIFI_MGT_TYPE),
// below is for control frame
WIFI_PSPOLL = (BIT(7) | BIT(5) | WIFI_CTRL_TYPE),
WIFI_RTS = (BIT(7) | BIT(5) | BIT(4) | WIFI_CTRL_TYPE),
WIFI_CTS = (BIT(7) | BIT(6) | WIFI_CTRL_TYPE),
WIFI_ACK = (BIT(7) | BIT(6) | BIT(4) | WIFI_CTRL_TYPE),
WIFI_CFEND = (BIT(7) | BIT(6) | BIT(5) | WIFI_CTRL_TYPE),
WIFI_CFEND_CFACK = (BIT(7) | BIT(6) | BIT(5) | BIT(4) | WIFI_CTRL_TYPE),
// below is for control frame
WIFI_NDPA = (BIT(6) | BIT(4) | WIFI_CTRL_TYPE),
WIFI_PSPOLL = (BIT(7) | BIT(5) | WIFI_CTRL_TYPE),
WIFI_RTS = (BIT(7) | BIT(5) | BIT(4) | WIFI_CTRL_TYPE),
WIFI_CTS = (BIT(7) | BIT(6) | WIFI_CTRL_TYPE),
WIFI_ACK = (BIT(7) | BIT(6) | BIT(4) | WIFI_CTRL_TYPE),
WIFI_CFEND = (BIT(7) | BIT(6) | BIT(5) | WIFI_CTRL_TYPE),
WIFI_CFEND_CFACK = (BIT(7) | BIT(6) | BIT(5) | BIT(4) | WIFI_CTRL_TYPE),
// below is for data frame
WIFI_DATA = (0 | WIFI_DATA_TYPE),
WIFI_DATA_CFACK = (BIT(4) | WIFI_DATA_TYPE),
WIFI_DATA_CFPOLL = (BIT(5) | WIFI_DATA_TYPE),
WIFI_DATA_CFACKPOLL = (BIT(5) | BIT(4) | WIFI_DATA_TYPE),
WIFI_DATA_NULL = (BIT(6) | WIFI_DATA_TYPE),
WIFI_CF_ACK = (BIT(6) | BIT(4) | WIFI_DATA_TYPE),
WIFI_CF_POLL = (BIT(6) | BIT(5) | WIFI_DATA_TYPE),
WIFI_CF_ACKPOLL = (BIT(6) | BIT(5) | BIT(4) | WIFI_DATA_TYPE),
WIFI_QOS_DATA_NULL = (BIT(6) | WIFI_QOS_DATA_TYPE),
// below is for data frame
WIFI_DATA = (0 | WIFI_DATA_TYPE),
WIFI_DATA_CFACK = (BIT(4) | WIFI_DATA_TYPE),
WIFI_DATA_CFPOLL = (BIT(5) | WIFI_DATA_TYPE),
WIFI_DATA_CFACKPOLL = (BIT(5) | BIT(4) | WIFI_DATA_TYPE),
WIFI_DATA_NULL = (BIT(6) | WIFI_DATA_TYPE),
WIFI_CF_ACK = (BIT(6) | BIT(4) | WIFI_DATA_TYPE),
WIFI_CF_POLL = (BIT(6) | BIT(5) | WIFI_DATA_TYPE),
WIFI_CF_ACKPOLL = (BIT(6) | BIT(5) | BIT(4) | WIFI_DATA_TYPE),
WIFI_QOS_DATA_NULL = (BIT(6) | WIFI_QOS_DATA_TYPE),
};
enum WIFI_REASON_CODE {
enum WIFI_REASON_CODE {
_RSON_RESERVED_ = 0,
_RSON_UNSPECIFIED_ = 1,
_RSON_AUTH_NO_LONGER_VALID_ = 2,
@@ -167,6 +170,8 @@ enum WIFI_REASON_CODE {
enum WIFI_STATUS_CODE {
_STATS_SUCCESSFUL_ = 0,
_STATS_FAILURE_ = 1,
_STATS_SEC_DISABLED_ = 5,
_STATS_NOT_IN_SAME_BSS_ = 7,
_STATS_CAP_FAIL_ = 10,
_STATS_NO_ASOC_ = 11,
_STATS_OTHER_ = 12,
@@ -176,6 +181,9 @@ enum WIFI_STATUS_CODE {
_STATS_AUTH_TIMEOUT_ = 16,
_STATS_UNABLE_HANDLE_STA_ = 17,
_STATS_RATE_FAIL_ = 18,
_STATS_DECLINE_REQ_ = 37,
_STATS_INVALID_PARAMETERS_ = 38,
_STATS_INVALID_RSNIE_ = 72,
};
/* Status codes (IEEE 802.11-2007, 7.3.1.9, Table 7-23) */
@@ -192,7 +200,7 @@ enum WIFI_STATUS_CODE {
#define WLAN_STATUS_AP_UNABLE_TO_HANDLE_NEW_STA 17
#define WLAN_STATUS_ASSOC_DENIED_RATES 18
#endif
//entended
//entended
/* IEEE 802.11b */
#define WLAN_STATUS_ASSOC_DENIED_NOSHORT 19
#define WLAN_STATUS_ASSOC_DENIED_NOPBCC 20
@@ -407,7 +415,7 @@ enum WIFI_REG_DOMAIN {
#define SetAMsdu(pbuf, amsdu) \
do { \
*(unsigned short *)(pbuf) |= cpu_to_le16( (amsdu & 1) << 7); \
} while(0)
} while(0)
#define GetAid(pbuf) (cpu_to_le16(*(unsigned short *)((SIZE_PTR)(pbuf) + 2)) & 0x3fff)
@@ -436,6 +444,18 @@ __inline static int IS_MCAST(const unsigned char *da)
return _FALSE;
}
__inline static unsigned char * get_ra(unsigned char *pframe)
{
unsigned char *ra;
ra = GetAddr1Ptr(pframe);
return ra;
}
__inline static unsigned char * get_ta(unsigned char *pframe)
{
unsigned char *ta;
ta = GetAddr2Ptr(pframe);
return ta;
}
__inline static unsigned char * get_da(unsigned char *pframe)
{
@@ -443,18 +463,18 @@ __inline static unsigned char * get_da(unsigned char *pframe)
unsigned int to_fr_ds = (GetToDs(pframe) << 1) | GetFrDs(pframe);
switch (to_fr_ds) {
case 0x00: // ToDs=0, FromDs=0
da = GetAddr1Ptr(pframe);
break;
case 0x01: // ToDs=0, FromDs=1
da = GetAddr1Ptr(pframe);
break;
case 0x02: // ToDs=1, FromDs=0
da = GetAddr3Ptr(pframe);
break;
default: // ToDs=1, FromDs=1
da = GetAddr3Ptr(pframe);
break;
case 0x00: // ToDs=0, FromDs=0
da = GetAddr1Ptr(pframe);
break;
case 0x01: // ToDs=0, FromDs=1
da = GetAddr1Ptr(pframe);
break;
case 0x02: // ToDs=1, FromDs=0
da = GetAddr3Ptr(pframe);
break;
default: // ToDs=1, FromDs=1
da = GetAddr3Ptr(pframe);
break;
}
return da;
@@ -467,18 +487,18 @@ __inline static unsigned char * get_sa(unsigned char *pframe)
unsigned int to_fr_ds = (GetToDs(pframe) << 1) | GetFrDs(pframe);
switch (to_fr_ds) {
case 0x00: // ToDs=0, FromDs=0
sa = GetAddr2Ptr(pframe);
break;
case 0x01: // ToDs=0, FromDs=1
sa = GetAddr3Ptr(pframe);
break;
case 0x02: // ToDs=1, FromDs=0
sa = GetAddr2Ptr(pframe);
break;
default: // ToDs=1, FromDs=1
sa = GetAddr4Ptr(pframe);
break;
case 0x00: // ToDs=0, FromDs=0
sa = GetAddr2Ptr(pframe);
break;
case 0x01: // ToDs=0, FromDs=1
sa = GetAddr3Ptr(pframe);
break;
case 0x02: // ToDs=1, FromDs=0
sa = GetAddr2Ptr(pframe);
break;
default: // ToDs=1, FromDs=1
sa = GetAddr4Ptr(pframe);
break;
}
return sa;
@@ -486,25 +506,22 @@ __inline static unsigned char * get_sa(unsigned char *pframe)
__inline static unsigned char * get_hdr_bssid(unsigned char *pframe)
{
unsigned char *sa;
unsigned char *sa = NULL;
unsigned int to_fr_ds = (GetToDs(pframe) << 1) | GetFrDs(pframe);
switch (to_fr_ds) {
case 0x00: // ToDs=0, FromDs=0
sa = GetAddr3Ptr(pframe);
break;
case 0x01: // ToDs=0, FromDs=1
sa = GetAddr2Ptr(pframe);
break;
case 0x02: // ToDs=1, FromDs=0
sa = GetAddr1Ptr(pframe);
break;
case 0x03: // ToDs=1, FromDs=1
sa = GetAddr1Ptr(pframe);
break;
default:
sa =NULL; //???????
break;
case 0x00: // ToDs=0, FromDs=0
sa = GetAddr3Ptr(pframe);
break;
case 0x01: // ToDs=0, FromDs=1
sa = GetAddr2Ptr(pframe);
break;
case 0x02: // ToDs=1, FromDs=0
sa = GetAddr1Ptr(pframe);
break;
case 0x03: // ToDs=1, FromDs=1
sa = GetAddr1Ptr(pframe);
break;
}
return sa;
@@ -572,7 +589,9 @@ __inline static int IsFrameTypeCtrl(unsigned char *pframe)
//#define EID_BSSCoexistence 72 // 20/40 BSS Coexistence
//#define EID_BSSIntolerantChlReport 73
#define _RIC_Descriptor_IE_ 75
#ifdef CONFIG_IEEE80211W
#define _MME_IE_ 76 //802.11w Management MIC element
#endif //CONFIG_IEEE80211W
#define _LINK_ID_IE_ 101
#define _CH_SWITCH_TIMING_ 104
#define _PTI_BUFFER_STATUS_ 106
@@ -581,7 +600,7 @@ __inline static int IsFrameTypeCtrl(unsigned char *pframe)
#define _RESERVED47_ 47
typedef enum _ELEMENT_ID{
typedef enum _ELEMENT_ID {
EID_SsId = 0, /* service set identifier (0:32) */
EID_SupRates = 1, /* supported rates (1:8) */
EID_FHParms = 2, /* FH parameter set (5) */
@@ -598,7 +617,7 @@ typedef enum _ELEMENT_ID{
EID_TClass = 14,
EID_Schedule = 15,
//
EID_Ctext = 16, /* challenge text*/
EID_POWER_CONSTRAINT = 32, /* Power Constraint*/
@@ -610,7 +629,7 @@ typedef enum _ELEMENT_ID{
EID_MeasureRequest = 38, // Measurement Request
EID_MeasureReport = 39, // Measurement Report
EID_ERPInfo = 42,
// Form 7.3.2: Information elements in 802.11E/D13.0, page 46.
@@ -619,27 +638,27 @@ typedef enum _ELEMENT_ID{
EID_HTCapability = 45,
EID_QoSCap = 46,
//
EID_WPA2 = 48,
EID_ExtSupRates = 50,
EID_FTIE = 55, // Defined in 802.11r
EID_Timeout = 56, // Defined in 802.11r
EID_SupRegulatory = 59, // Supported Requlatory Classes 802.11y
EID_HTInfo = 61,
EID_SecondaryChnlOffset = 62,
EID_BSSCoexistence = 72, // 20/40 BSS Coexistence
EID_BSSIntolerantChlReport = 73,
EID_OBSS = 74, // Overlapping BSS Scan Parameters
EID_LinkIdentifier = 101, // Defined in 802.11z
EID_WakeupSchedule = 102, // Defined in 802.11z
EID_ChnlSwitchTimeing = 104, // Defined in 802.11z
EID_PTIControl = 105, // Defined in 802.11z
EID_PUBufferStatus = 106, // Defined in 802.11z
EID_EXTCapability = 127, // Extended Capabilities
// From S19:Aironet IE and S21:AP IP address IE in CCX v1.13, p16 and p18.
EID_Aironet = 133, // 0x85: Aironet Element for Cisco CCX
@@ -647,7 +666,7 @@ typedef enum _ELEMENT_ID{
EID_CellPwr = 150, // 0x96: Cell Power Limit IE. Ref. 0x96.
EID_CCKM = 156,
EID_CCKM = 156,
EID_Vendor = 221, // 0xDD: Vendor Specific
@@ -655,7 +674,7 @@ typedef enum _ELEMENT_ID{
EID_VHTCapability = 191, // Based on 802.11ac D2.0
EID_VHTOperation = 192, // Based on 802.11ac D2.0
EID_OpModeNotification = 199, // Based on 802.11ac D3.0
}ELEMENT_ID, *PELEMENT_ID;
} ELEMENT_ID, *PELEMENT_ID;
/* ---------------------------------------------------------------------------
Below is the fixed elements...
@@ -705,7 +724,10 @@ typedef enum _ELEMENT_ID{
#define _WEP_104_PRIVACY_ 5
#define _WEP_WPA_MIXED_PRIVACY_ 6 // WEP + WPA
*/
#ifdef CONFIG_IEEE80211W
#define _MME_IE_LENGTH_ 18
#endif //CONFIG_IEEE80211W
/*-----------------------------------------------------------------------------
Below is the definition for WMM
------------------------------------------------------------------------------*/
@@ -714,7 +736,7 @@ typedef enum _ELEMENT_ID{
/*-----------------------------------------------------------------------------
Below is the definition for 802.11n
Below is the definition for 802.11n
------------------------------------------------------------------------------*/
//#ifdef CONFIG_80211N_HT
@@ -726,6 +748,7 @@ typedef enum _ELEMENT_ID{
#define GetOrderBit(pbuf) (((*(unsigned short *)(pbuf)) & le16_to_cpu(_ORDER_)) != 0)
#define ACT_CAT_VENDOR 0x7F/* 127 */
/**
* struct rtw_ieee80211_bar - HT Block Ack Request
@@ -733,7 +756,7 @@ typedef enum _ELEMENT_ID{
* This structure refers to "HT BlockAckReq" as
* described in 802.11n draft section 7.2.1.7.1
*/
#if defined(PLATFORM_LINUX) || defined(CONFIG_RTL8712FW)
#if defined(PLATFORM_LINUX) || defined(CONFIG_RTL8712FW)
struct rtw_ieee80211_bar {
unsigned short frame_control;
unsigned short duration;
@@ -742,24 +765,24 @@ struct rtw_ieee80211_bar {
unsigned short control;
unsigned short start_seq_num;
} __attribute__((packed));
#endif
#endif
/* 802.11 BAR control masks */
#define IEEE80211_BAR_CTRL_ACK_POLICY_NORMAL 0x0000
#define IEEE80211_BAR_CTRL_CBMTID_COMPRESSED_BA 0x0004
#if defined(PLATFORM_LINUX) || defined(CONFIG_RTL8712FW) || defined(PLATFORM_FREEBSD)
#if defined(PLATFORM_LINUX) || defined(CONFIG_RTL8712FW) || defined(PLATFORM_FREEBSD)
/**
* struct rtw_ieee80211_ht_cap - HT capabilities
*
* This structure refers to "HT capabilities element" as
* described in 802.11n draft section 7.3.2.52
*/
/**
* struct rtw_ieee80211_ht_cap - HT capabilities
*
* This structure refers to "HT capabilities element" as
* described in 802.11n draft section 7.3.2.52
*/
struct rtw_ieee80211_ht_cap {
unsigned short cap_info;
unsigned char ampdu_params_info;
@@ -784,12 +807,9 @@ struct ieee80211_ht_addt_info {
} __attribute__ ((packed));
struct HT_caps_element
{
union
{
struct
{
struct HT_caps_element {
union {
struct {
unsigned short HT_caps_info;
unsigned char AMPDU_para;
unsigned char MCS_rate[16];
@@ -798,32 +818,28 @@ struct HT_caps_element
unsigned char ASEL_caps;
} HT_cap_element;
unsigned char HT_cap[26];
}u;
} u;
} __attribute__ ((packed));
struct HT_info_element
{
struct HT_info_element {
unsigned char primary_channel;
unsigned char infos[5];
unsigned char MCS_rate[16];
} __attribute__ ((packed));
struct AC_param
{
struct AC_param {
unsigned char ACI_AIFSN;
unsigned char CW;
unsigned short TXOP_limit;
} __attribute__ ((packed));
struct WMM_para_element
{
struct WMM_para_element {
unsigned char QoS_info;
unsigned char reserved;
struct AC_param ac_param[4];
} __attribute__ ((packed));
struct ADDBA_request
{
struct ADDBA_request {
unsigned char dialog_token;
unsigned short BA_para_set;
unsigned short BA_timeout_value;
@@ -857,12 +873,9 @@ struct ieee80211_ht_addt_info {
unsigned char basic_set[16];
};
struct HT_caps_element
{
union
{
struct
{
struct HT_caps_element {
union {
struct {
unsigned short HT_caps_info;
unsigned char AMPDU_para;
unsigned char MCS_rate[16];
@@ -874,29 +887,25 @@ struct HT_caps_element
};
};
struct HT_info_element
{
struct HT_info_element {
unsigned char primary_channel;
unsigned char infos[5];
unsigned char MCS_rate[16];
};
struct AC_param
{
struct AC_param {
unsigned char ACI_AIFSN;
unsigned char CW;
unsigned short TXOP_limit;
};
struct WMM_para_element
{
struct WMM_para_element {
unsigned char QoS_info;
unsigned char reserved;
struct AC_param ac_param[4];
};
struct ADDBA_request
{
struct ADDBA_request {
unsigned char dialog_token;
unsigned short BA_para_set;
unsigned short BA_timeout_value;
@@ -912,17 +921,20 @@ typedef enum _HT_CAP_AMPDU_FACTOR {
MAX_AMPDU_FACTOR_8K = 0,
MAX_AMPDU_FACTOR_16K = 1,
MAX_AMPDU_FACTOR_32K = 2,
MAX_AMPDU_FACTOR_64K = 3,
}HT_CAP_AMPDU_FACTOR;
MAX_AMPDU_FACTOR_64K = 3,
} HT_CAP_AMPDU_FACTOR;
/* 802.11n HT capabilities masks */
#define IEEE80211_HT_CAP_LDPC_CODING 0x0001
#define IEEE80211_HT_CAP_SUP_WIDTH 0x0002
#define IEEE80211_HT_CAP_SM_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_TX_STBC 0x0080
#define IEEE80211_HT_CAP_RX_STBC 0x0300
#define IEEE80211_HT_CAP_RX_STBC_1R 0x0100
#define IEEE80211_HT_CAP_RX_STBC_2R 0x0200
#define IEEE80211_HT_CAP_RX_STBC_3R 0x0300
#define IEEE80211_HT_CAP_DELAY_BA 0x0400
#define IEEE80211_HT_CAP_MAX_AMSDU 0x0800
#define IEEE80211_HT_CAP_DSSSCCK40 0x1000
@@ -938,6 +950,11 @@ typedef enum _HT_CAP_AMPDU_FACTOR {
#define IEEE80211_HT_CAP_MCS_TX_RX_DIFF 0x02
#define IEEE80211_HT_CAP_MCS_TX_STREAMS 0x0C
#define IEEE80211_HT_CAP_MCS_TX_UEQM 0x10
/* 802.11n HT capability TXBF capability */
#define IEEE80211_HT_CAP_TXBF_RX_NDP 0x00000008
#define IEEE80211_HT_CAP_TXBF_TX_NDP 0x00000010
#define IEEE80211_HT_CAP_TXBF_EXPLICIT_COMP_STEERING_CAP 0x00000400
/* 802.11n HT IE masks */
#define IEEE80211_HT_IE_CHA_SEC_OFFSET 0x03
#define IEEE80211_HT_IE_CHA_SEC_NONE 0x00
@@ -1185,7 +1202,7 @@ typedef enum _HT_CAP_AMPDU_FACTOR {
#define P2P_FINDPHASE_EX_NONE 0 // default value, used when: (1)p2p disabed or (2)p2p enabled but only do 1 scan phase
#define P2P_FINDPHASE_EX_FULL 1 // used when p2p enabled and want to do 1 scan phase and P2P_FINDPHASE_EX_MAX-1 find phase
#define P2P_FINDPHASE_EX_SOCIAL_FIRST (P2P_FINDPHASE_EX_FULL+1)
#define P2P_FINDPHASE_EX_SOCIAL_FIRST (P2P_FINDPHASE_EX_FULL+1)
#define P2P_FINDPHASE_EX_MAX 4
#define P2P_FINDPHASE_EX_SOCIAL_LAST P2P_FINDPHASE_EX_MAX
@@ -1219,7 +1236,7 @@ enum P2P_ROLE {
P2P_ROLE_DISABLE = 0,
P2P_ROLE_DEVICE = 1,
P2P_ROLE_CLIENT = 2,
P2P_ROLE_GO = 3
P2P_ROLE_GO = 3
};
enum P2P_STATE {
@@ -1231,7 +1248,7 @@ enum P2P_STATE {
P2P_STATE_FIND_PHASE_SEARCH = 5, // In the search state of find phase
P2P_STATE_TX_PROVISION_DIS_REQ = 6, // In P2P provisioning discovery
P2P_STATE_RX_PROVISION_DIS_RSP = 7,
P2P_STATE_RX_PROVISION_DIS_REQ = 8,
P2P_STATE_RX_PROVISION_DIS_REQ = 8,
P2P_STATE_GONEGO_ING = 9, // Doing the group owner negoitation handshake
P2P_STATE_GONEGO_OK = 10, // finish the group negoitation handshake with success
P2P_STATE_GONEGO_FAIL = 11, // finish the group negoitation handshake with failure
@@ -1257,20 +1274,18 @@ enum P2P_WPSINFO {
#define P2P_PRIVATE_IOCTL_SET_LEN 64
enum P2P_PROTO_WK_ID
{
enum P2P_PROTO_WK_ID {
P2P_FIND_PHASE_WK = 0,
P2P_RESTORE_STATE_WK = 1,
P2P_PRE_TX_PROVDISC_PROCESS_WK = 2,
P2P_PRE_TX_NEGOREQ_PROCESS_WK = 3,
P2P_PRE_TX_NEGOREQ_PROCESS_WK = 3,
P2P_PRE_TX_INVITEREQ_PROCESS_WK = 4,
P2P_AP_P2P_CH_SWITCH_PROCESS_WK =5,
P2P_RO_CH_WK = 6,
};
#ifdef CONFIG_P2P_PS
enum P2P_PS_STATE
{
enum P2P_PS_STATE {
P2P_PS_DISABLE = 0,
P2P_PS_ENABLE = 1,
P2P_PS_SCAN = 2,
@@ -1278,8 +1293,7 @@ enum P2P_PS_STATE
P2P_PS_ALLSTASLEEP = 4, // for P2P GO
};
enum P2P_PS_MODE
{
enum P2P_PS_MODE {
P2P_PS_NONE = 0,
P2P_PS_CTWINDOW = 1,
P2P_PS_NOA = 2,
@@ -1312,7 +1326,25 @@ enum P2P_PS_MODE
#define ICMPV6_MCAST_MAC(mac) ((mac[0]==0x33)&&(mac[1]==0x33)&&(mac[2]!=0xff))
#endif // CONFIG_TX_MCAST2UNI
#ifdef CONFIG_IOCTL_CFG80211
/* Regulatroy Domain */
struct regd_pair_mapping {
u16 reg_dmnenum;
u16 reg_5ghz_ctl;
u16 reg_2ghz_ctl;
};
struct rtw_regulatory {
char alpha2[2];
u16 country_code;
u16 max_power_level;
u32 tp_scale;
u16 current_rd;
u16 current_rd_ext;
int16_t power_limit;
struct regd_pair_mapping *regpair;
};
#endif
#ifdef CONFIG_WAPI_SUPPORT
#ifndef IW_AUTH_WAPI_VERSION_1