Commit 78f41c91 authored by Malcolm Priestley's avatar Malcolm Priestley Committed by Greg Kroah-Hartman

staging: vt6656: change wmgr to new structures

This patch cleans up function declarations, definitions and local variables
were appropriate replacing types defined in "ttype.h" with linux/types.h.
Signed-off-by: default avatarMalcolm Priestley <tvboxspy@gmail.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 98583c09
...@@ -93,227 +93,98 @@ static int msglevel =MSG_LEVEL_INFO; ...@@ -93,227 +93,98 @@ static int msglevel =MSG_LEVEL_INFO;
/*--------------------- Static Functions --------------------------*/ /*--------------------- Static Functions --------------------------*/
static BOOL ChannelExceedZoneType( static int ChannelExceedZoneType(struct vnt_private *, u8 byCurrChannel);
PSDevice pDevice,
BYTE byCurrChannel
);
// Association/diassociation functions /* Association/diassociation functions */
static static struct vnt_tx_mgmt *s_MgrMakeAssocRequest(struct vnt_private *,
PSTxMgmtPacket struct vnt_manager *pMgmt, u8 *pDAddr, u16 wCurrCapInfo,
s_MgrMakeAssocRequest( u16 wListenInterval, PWLAN_IE_SSID pCurrSSID,
PSDevice pDevice, PWLAN_IE_SUPP_RATES pCurrRates, PWLAN_IE_SUPP_RATES pCurrExtSuppRates);
PSMgmtObject pMgmt,
PBYTE pDAddr,
WORD wCurrCapInfo,
WORD wListenInterval,
PWLAN_IE_SSID pCurrSSID,
PWLAN_IE_SUPP_RATES pCurrRates,
PWLAN_IE_SUPP_RATES pCurrExtSuppRates
);
static static void s_vMgrRxAssocRequest(struct vnt_private *,
void struct vnt_manager *pMgmt, struct vnt_rx_mgmt *pRxPacket,
s_vMgrRxAssocRequest( u32 uNodeIndex);
PSDevice pDevice,
PSMgmtObject pMgmt,
PSRxMgmtPacket pRxPacket,
unsigned int uNodeIndex
);
static static struct vnt_tx_mgmt *s_MgrMakeReAssocRequest(struct vnt_private *,
PSTxMgmtPacket struct vnt_manager *pMgmt, u8 *pDAddr, u16 wCurrCapInfo,
s_MgrMakeReAssocRequest( u16 wListenInterval, PWLAN_IE_SSID pCurrSSID,
PSDevice pDevice, PWLAN_IE_SUPP_RATES pCurrRates, PWLAN_IE_SUPP_RATES pCurrExtSuppRates);
PSMgmtObject pMgmt,
PBYTE pDAddr,
WORD wCurrCapInfo,
WORD wListenInterval,
PWLAN_IE_SSID pCurrSSID,
PWLAN_IE_SUPP_RATES pCurrRates,
PWLAN_IE_SUPP_RATES pCurrExtSuppRates
);
static static void s_vMgrRxAssocResponse(struct vnt_private *,
void struct vnt_manager *pMgmt, struct vnt_rx_mgmt *pRxPacket,
s_vMgrRxAssocResponse( int bReAssocType);
PSDevice pDevice,
PSMgmtObject pMgmt,
PSRxMgmtPacket pRxPacket,
BOOL bReAssocType
);
static static void s_vMgrRxDisassociation(struct vnt_private *,
void struct vnt_manager *pMgmt, struct vnt_rx_mgmt *pRxPacket);
s_vMgrRxDisassociation(
PSDevice pDevice,
PSMgmtObject pMgmt,
PSRxMgmtPacket pRxPacket
);
// Authentication/deauthen functions /* Authentication/deauthen functions */
static static void s_vMgrRxAuthenSequence_1(struct vnt_private *,
void struct vnt_manager *pMgmt, PWLAN_FR_AUTHEN pFrame);
s_vMgrRxAuthenSequence_1(
PSDevice pDevice,
PSMgmtObject pMgmt,
PWLAN_FR_AUTHEN pFrame
);
static static void s_vMgrRxAuthenSequence_2(struct vnt_private *,
void struct vnt_manager *pMgmt, PWLAN_FR_AUTHEN pFrame);
s_vMgrRxAuthenSequence_2(
PSDevice pDevice,
PSMgmtObject pMgmt,
PWLAN_FR_AUTHEN pFrame
);
static static void s_vMgrRxAuthenSequence_3(struct vnt_private *,
void struct vnt_manager *pMgmt, PWLAN_FR_AUTHEN pFrame);
s_vMgrRxAuthenSequence_3(
PSDevice pDevice,
PSMgmtObject pMgmt,
PWLAN_FR_AUTHEN pFrame
);
static static void s_vMgrRxAuthenSequence_4(struct vnt_private *,
void struct vnt_manager *pMgmt, PWLAN_FR_AUTHEN pFrame);
s_vMgrRxAuthenSequence_4(
PSDevice pDevice,
PSMgmtObject pMgmt,
PWLAN_FR_AUTHEN pFrame
);
static static void s_vMgrRxAuthentication(struct vnt_private *,
void struct vnt_manager *pMgmt, struct vnt_rx_mgmt *pRxPacket);
s_vMgrRxAuthentication(
PSDevice pDevice,
PSMgmtObject pMgmt,
PSRxMgmtPacket pRxPacket
);
static static void s_vMgrRxDeauthentication(struct vnt_private *,
void struct vnt_manager *pMgmt, struct vnt_rx_mgmt *pRxPacket);
s_vMgrRxDeauthentication(
PSDevice pDevice,
PSMgmtObject pMgmt,
PSRxMgmtPacket pRxPacket
);
// Scan functions /* Scan functions
// probe request/response functions * probe request/response functions */
static
void
s_vMgrRxProbeRequest(
PSDevice pDevice,
PSMgmtObject pMgmt,
PSRxMgmtPacket pRxPacket
);
static static void s_vMgrRxProbeRequest(struct vnt_private *,
void struct vnt_manager *pMgmt, struct vnt_rx_mgmt *pRxPacket);
s_vMgrRxProbeResponse(
PSDevice pDevice,
PSMgmtObject pMgmt,
PSRxMgmtPacket pRxPacket
);
// beacon functions static void s_vMgrRxProbeResponse(struct vnt_private *,
static struct vnt_manager *pMgmt, struct vnt_rx_mgmt *pRxPacket);
void
s_vMgrRxBeacon(
PSDevice pDevice,
PSMgmtObject pMgmt,
PSRxMgmtPacket pRxPacket,
BOOL bInScan
);
static /* beacon functions */
void static void s_vMgrRxBeacon(struct vnt_private *pDevice,
s_vMgrFormatTIM( struct vnt_manager *pMgmt, struct vnt_rx_mgmt *pRxPacket,
PSMgmtObject pMgmt, int bInScan);
PWLAN_IE_TIM pTIM
);
static static void s_vMgrFormatTIM(struct vnt_manager *pMgmt, PWLAN_IE_TIM pTIM);
PSTxMgmtPacket
s_MgrMakeBeacon(
PSDevice pDevice,
PSMgmtObject pMgmt,
WORD wCurrCapInfo,
WORD wCurrBeaconPeriod,
unsigned int uCurrChannel,
WORD wCurrATIMWinodw,
PWLAN_IE_SSID pCurrSSID,
PBYTE pCurrBSSID,
PWLAN_IE_SUPP_RATES pCurrSuppRates,
PWLAN_IE_SUPP_RATES pCurrExtSuppRates
);
static struct vnt_tx_mgmt *s_MgrMakeBeacon(struct vnt_private *pDevice,
struct vnt_manager *pMgmt, u16 wCurrCapInfo, u16 wCurrBeaconPeriod,
u32 uCurrChannel, u16 wCurrATIMWinodw, PWLAN_IE_SSID pCurrSSID,
u8 *pCurrBSSID, PWLAN_IE_SUPP_RATES pCurrSuppRates,
PWLAN_IE_SUPP_RATES pCurrExtSuppRates);
// Association response
static
PSTxMgmtPacket
s_MgrMakeAssocResponse(
PSDevice pDevice,
PSMgmtObject pMgmt,
WORD wCurrCapInfo,
WORD wAssocStatus,
WORD wAssocAID,
PBYTE pDstAddr,
PWLAN_IE_SUPP_RATES pCurrSuppRates,
PWLAN_IE_SUPP_RATES pCurrExtSuppRates
);
// ReAssociation response /* Association response */
static static struct vnt_tx_mgmt *s_MgrMakeAssocResponse(struct vnt_private *,
PSTxMgmtPacket struct vnt_manager *pMgmt, u16 wCurrCapInfo, u16 wAssocStatus,
s_MgrMakeReAssocResponse( u16 wAssocAID, u8 *pDstAddr, PWLAN_IE_SUPP_RATES pCurrSuppRates,
PSDevice pDevice, PWLAN_IE_SUPP_RATES pCurrExtSuppRates);
PSMgmtObject pMgmt,
WORD wCurrCapInfo,
WORD wAssocStatus,
WORD wAssocAID,
PBYTE pDstAddr,
PWLAN_IE_SUPP_RATES pCurrSuppRates,
PWLAN_IE_SUPP_RATES pCurrExtSuppRates
);
// Probe response /* ReAssociation response */
static static struct vnt_tx_mgmt *s_MgrMakeReAssocResponse(struct vnt_private *,
PSTxMgmtPacket struct vnt_manager *pMgmt, u16 wCurrCapInfo, u16 wAssocStatus,
s_MgrMakeProbeResponse( u16 wAssocAID, u8 *pDstAddr, PWLAN_IE_SUPP_RATES pCurrSuppRates,
PSDevice pDevice, PWLAN_IE_SUPP_RATES pCurrExtSuppRates);
PSMgmtObject pMgmt,
WORD wCurrCapInfo,
WORD wCurrBeaconPeriod,
unsigned int uCurrChannel,
WORD wCurrATIMWinodw,
PBYTE pDstAddr,
PWLAN_IE_SSID pCurrSSID,
PBYTE pCurrBSSID,
PWLAN_IE_SUPP_RATES pCurrSuppRates,
PWLAN_IE_SUPP_RATES pCurrExtSuppRates,
BYTE byPHYType
);
// received status /* Probe response */
static static struct vnt_tx_mgmt *s_MgrMakeProbeResponse(struct vnt_private *,
void struct vnt_manager *pMgmt, u16 wCurrCapInfo, u16 wCurrBeaconPeriod,
s_vMgrLogStatus( u32 uCurrChannel, u16 wCurrATIMWinodw, u8 *pDstAddr,
PSMgmtObject pMgmt, PWLAN_IE_SSID pCurrSSID, u8 *pCurrBSSID,
WORD wStatus PWLAN_IE_SUPP_RATES pCurrSuppRates,
); PWLAN_IE_SUPP_RATES pCurrExtSuppRates, u8 byPHYType);
/* received status */
static void s_vMgrLogStatus(struct vnt_manager *pMgmt, u16 wStatus);
static
void static void s_vMgrSynchBSS(struct vnt_private *, u32 uBSSMode,
s_vMgrSynchBSS ( PKnownBSS pCurr, PCMD_STATUS pStatus);
PSDevice pDevice,
unsigned int uBSSMode,
PKnownBSS pCurr,
PCMD_STATUS pStatus
);
static BOOL static BOOL
...@@ -324,10 +195,7 @@ s_bCipherMatch ( ...@@ -324,10 +195,7 @@ s_bCipherMatch (
PBYTE pbyCCSGK PBYTE pbyCCSGK
); );
static void Encyption_Rebuild( static void Encyption_Rebuild(struct vnt_private *, PKnownBSS pCurr);
PSDevice pDevice,
PKnownBSS pCurr
);
/*--------------------- Export Variables --------------------------*/ /*--------------------- Export Variables --------------------------*/
...@@ -343,11 +211,10 @@ s_bCipherMatch ( ...@@ -343,11 +211,10 @@ s_bCipherMatch (
* *
-*/ -*/
void vMgrObjectInit(void *hDeviceContext) void vMgrObjectInit(struct vnt_private *pDevice)
{ {
PSDevice pDevice = (PSDevice)hDeviceContext; struct vnt_manager *pMgmt = &pDevice->vnt_mgmt;
PSMgmtObject pMgmt = &(pDevice->sMgmtObj); int ii;
int ii;
pMgmt->pbyPSPacketPool = &pMgmt->byPSPacketPool[0]; pMgmt->pbyPSPacketPool = &pMgmt->byPSPacketPool[0];
...@@ -402,12 +269,10 @@ void vMgrObjectInit(void *hDeviceContext) ...@@ -402,12 +269,10 @@ void vMgrObjectInit(void *hDeviceContext)
* *
-*/ -*/
void vMgrAssocBeginSta(void *hDeviceContext, void vMgrAssocBeginSta(struct vnt_private *pDevice,
PSMgmtObject pMgmt, struct vnt_manager *pMgmt, PCMD_STATUS pStatus)
PCMD_STATUS pStatus)
{ {
PSDevice pDevice = (PSDevice)hDeviceContext; struct vnt_tx_mgmt *pTxPacket;
PSTxMgmtPacket pTxPacket;
pMgmt->wCurrCapInfo = 0; pMgmt->wCurrCapInfo = 0;
...@@ -475,14 +340,10 @@ void vMgrAssocBeginSta(void *hDeviceContext, ...@@ -475,14 +340,10 @@ void vMgrAssocBeginSta(void *hDeviceContext,
* *
-*/ -*/
void vMgrReAssocBeginSta(void *hDeviceContext, void vMgrReAssocBeginSta(struct vnt_private *pDevice,
PSMgmtObject pMgmt, struct vnt_manager *pMgmt, PCMD_STATUS pStatus)
PCMD_STATUS pStatus)
{ {
PSDevice pDevice = (PSDevice)hDeviceContext; struct vnt_tx_mgmt *pTxPacket;
PSTxMgmtPacket pTxPacket;
pMgmt->wCurrCapInfo = 0; pMgmt->wCurrCapInfo = 0;
pMgmt->wCurrCapInfo |= WLAN_SET_CAP_INFO_ESS(1); pMgmt->wCurrCapInfo |= WLAN_SET_CAP_INFO_ESS(1);
...@@ -551,19 +412,18 @@ void vMgrReAssocBeginSta(void *hDeviceContext, ...@@ -551,19 +412,18 @@ void vMgrReAssocBeginSta(void *hDeviceContext,
* *
-*/ -*/
void vMgrDisassocBeginSta(void *hDeviceContext, void vMgrDisassocBeginSta(struct vnt_private *pDevice,
PSMgmtObject pMgmt, struct vnt_manager *pMgmt, u8 *abyDestAddress, u16 wReason,
PBYTE abyDestAddress, PCMD_STATUS pStatus)
WORD wReason,
PCMD_STATUS pStatus)
{ {
PSDevice pDevice = (PSDevice)hDeviceContext; struct vnt_tx_mgmt *pTxPacket = NULL;
PSTxMgmtPacket pTxPacket = NULL; WLAN_FR_DISASSOC sFrame;
WLAN_FR_DISASSOC sFrame;
pTxPacket = (PSTxMgmtPacket)pMgmt->pbyMgmtPacketPool; pTxPacket = (struct vnt_tx_mgmt *)pMgmt->pbyMgmtPacketPool;
memset(pTxPacket, 0, sizeof(STxMgmtPacket) + WLAN_DISASSOC_FR_MAXLEN); memset(pTxPacket, 0, sizeof(struct vnt_tx_mgmt)
pTxPacket->p80211Header = (PUWLAN_80211HDR)((PBYTE)pTxPacket + sizeof(STxMgmtPacket)); + WLAN_DISASSOC_FR_MAXLEN);
pTxPacket->p80211Header = (PUWLAN_80211HDR)((u8 *)pTxPacket
+ sizeof(struct vnt_tx_mgmt));
// Setup the sFrame structure // Setup the sFrame structure
sFrame.pBuf = (PBYTE)pTxPacket->p80211Header; sFrame.pBuf = (PBYTE)pTxPacket->p80211Header;
...@@ -610,23 +470,18 @@ void vMgrDisassocBeginSta(void *hDeviceContext, ...@@ -610,23 +470,18 @@ void vMgrDisassocBeginSta(void *hDeviceContext,
* *
-*/ -*/
static static void s_vMgrRxAssocRequest(struct vnt_private *pDevice,
void struct vnt_manager *pMgmt, struct vnt_rx_mgmt *pRxPacket,
s_vMgrRxAssocRequest( u32 uNodeIndex)
PSDevice pDevice,
PSMgmtObject pMgmt,
PSRxMgmtPacket pRxPacket,
unsigned int uNodeIndex
)
{ {
WLAN_FR_ASSOCREQ sFrame; WLAN_FR_ASSOCREQ sFrame;
CMD_STATUS Status; CMD_STATUS Status;
PSTxMgmtPacket pTxPacket; struct vnt_tx_mgmt *pTxPacket;
WORD wAssocStatus = 0; u16 wAssocStatus = 0;
WORD wAssocAID = 0; u16 wAssocAID = 0;
unsigned int uRateLen = WLAN_RATES_MAXLEN; u32 uRateLen = WLAN_RATES_MAXLEN;
BYTE abyCurrSuppRates[WLAN_IEHDR_LEN + WLAN_RATES_MAXLEN + 1]; u8 abyCurrSuppRates[WLAN_IEHDR_LEN + WLAN_RATES_MAXLEN + 1];
BYTE abyCurrExtSuppRates[WLAN_IEHDR_LEN + WLAN_RATES_MAXLEN + 1]; u8 abyCurrExtSuppRates[WLAN_IEHDR_LEN + WLAN_RATES_MAXLEN + 1];
if (pMgmt->eCurrMode != WMAC_MODE_ESS_AP) if (pMgmt->eCurrMode != WMAC_MODE_ESS_AP)
...@@ -766,23 +621,18 @@ s_vMgrRxAssocRequest( ...@@ -766,23 +621,18 @@ s_vMgrRxAssocRequest(
* *
-*/ -*/
static static void s_vMgrRxReAssocRequest(struct vnt_private *pDevice,
void struct vnt_manager *pMgmt, struct vnt_rx_mgmt *pRxPacket,
s_vMgrRxReAssocRequest( u32 uNodeIndex)
PSDevice pDevice,
PSMgmtObject pMgmt,
PSRxMgmtPacket pRxPacket,
unsigned int uNodeIndex
)
{ {
WLAN_FR_REASSOCREQ sFrame; WLAN_FR_REASSOCREQ sFrame;
CMD_STATUS Status; CMD_STATUS Status;
PSTxMgmtPacket pTxPacket; struct vnt_tx_mgmt *pTxPacket;
WORD wAssocStatus = 0; u16 wAssocStatus = 0;
WORD wAssocAID = 0; u16 wAssocAID = 0;
unsigned int uRateLen = WLAN_RATES_MAXLEN; u32 uRateLen = WLAN_RATES_MAXLEN;
BYTE abyCurrSuppRates[WLAN_IEHDR_LEN + WLAN_RATES_MAXLEN + 1]; u8 abyCurrSuppRates[WLAN_IEHDR_LEN + WLAN_RATES_MAXLEN + 1];
BYTE abyCurrExtSuppRates[WLAN_IEHDR_LEN + WLAN_RATES_MAXLEN + 1]; u8 abyCurrExtSuppRates[WLAN_IEHDR_LEN + WLAN_RATES_MAXLEN + 1];
if (pMgmt->eCurrMode != WMAC_MODE_ESS_AP) if (pMgmt->eCurrMode != WMAC_MODE_ESS_AP)
return; return;
...@@ -913,18 +763,13 @@ s_vMgrRxReAssocRequest( ...@@ -913,18 +763,13 @@ s_vMgrRxReAssocRequest(
* *
-*/ -*/
static static void s_vMgrRxAssocResponse(struct vnt_private *pDevice,
void struct vnt_manager *pMgmt, struct vnt_rx_mgmt *pRxPacket,
s_vMgrRxAssocResponse( int bReAssocType)
PSDevice pDevice,
PSMgmtObject pMgmt,
PSRxMgmtPacket pRxPacket,
BOOL bReAssocType
)
{ {
WLAN_FR_ASSOCRESP sFrame; WLAN_FR_ASSOCRESP sFrame;
PWLAN_IE_SSID pItemSSID; PWLAN_IE_SSID pItemSSID;
PBYTE pbyIEs; u8 *pbyIEs;
...@@ -1050,17 +895,17 @@ if(pMgmt->eCurrState == WMAC_STATE_ASSOC) ...@@ -1050,17 +895,17 @@ if(pMgmt->eCurrState == WMAC_STATE_ASSOC)
* *
-*/ -*/
void vMgrAuthenBeginSta(void *hDeviceContext, void vMgrAuthenBeginSta(struct vnt_private *pDevice,
PSMgmtObject pMgmt, struct vnt_manager *pMgmt, PCMD_STATUS pStatus)
PCMD_STATUS pStatus)
{ {
PSDevice pDevice = (PSDevice)hDeviceContext; WLAN_FR_AUTHEN sFrame;
WLAN_FR_AUTHEN sFrame; struct vnt_tx_mgmt *pTxPacket =
PSTxMgmtPacket pTxPacket = NULL; (struct vnt_tx_mgmt *)pMgmt->pbyMgmtPacketPool;
pTxPacket = (PSTxMgmtPacket)pMgmt->pbyMgmtPacketPool; memset(pTxPacket, 0, sizeof(struct vnt_tx_mgmt)
memset(pTxPacket, 0, sizeof(STxMgmtPacket) + WLAN_AUTHEN_FR_MAXLEN); + WLAN_AUTHEN_FR_MAXLEN);
pTxPacket->p80211Header = (PUWLAN_80211HDR)((PBYTE)pTxPacket + sizeof(STxMgmtPacket)); pTxPacket->p80211Header = (PUWLAN_80211HDR)((u8 *)pTxPacket
+ sizeof(struct vnt_tx_mgmt));
sFrame.pBuf = (PBYTE)pTxPacket->p80211Header; sFrame.pBuf = (PBYTE)pTxPacket->p80211Header;
sFrame.len = WLAN_AUTHEN_FR_MAXLEN; sFrame.len = WLAN_AUTHEN_FR_MAXLEN;
vMgrEncodeAuthen(&sFrame); vMgrEncodeAuthen(&sFrame);
...@@ -1103,20 +948,18 @@ void vMgrAuthenBeginSta(void *hDeviceContext, ...@@ -1103,20 +948,18 @@ void vMgrAuthenBeginSta(void *hDeviceContext,
* *
-*/ -*/
void vMgrDeAuthenBeginSta(void *hDeviceContext, void vMgrDeAuthenBeginSta(struct vnt_private *pDevice,
PSMgmtObject pMgmt, struct vnt_manager *pMgmt, u8 *abyDestAddress, u16 wReason,
PBYTE abyDestAddress, PCMD_STATUS pStatus)
WORD wReason,
PCMD_STATUS pStatus)
{ {
PSDevice pDevice = (PSDevice)hDeviceContext; WLAN_FR_DEAUTHEN sFrame;
WLAN_FR_DEAUTHEN sFrame; struct vnt_tx_mgmt *pTxPacket =
PSTxMgmtPacket pTxPacket = NULL; (struct vnt_tx_mgmt *)pMgmt->pbyMgmtPacketPool;
memset(pTxPacket, 0, sizeof(struct vnt_tx_mgmt)
pTxPacket = (PSTxMgmtPacket)pMgmt->pbyMgmtPacketPool; + WLAN_DEAUTHEN_FR_MAXLEN);
memset(pTxPacket, 0, sizeof(STxMgmtPacket) + WLAN_DEAUTHEN_FR_MAXLEN); pTxPacket->p80211Header = (PUWLAN_80211HDR)((u8 *)pTxPacket
pTxPacket->p80211Header = (PUWLAN_80211HDR)((PBYTE)pTxPacket + sizeof(STxMgmtPacket)); + sizeof(struct vnt_tx_mgmt));
sFrame.pBuf = (PBYTE)pTxPacket->p80211Header; sFrame.pBuf = (PBYTE)pTxPacket->p80211Header;
sFrame.len = WLAN_DEAUTHEN_FR_MAXLEN; sFrame.len = WLAN_DEAUTHEN_FR_MAXLEN;
vMgrEncodeDeauthen(&sFrame); vMgrEncodeDeauthen(&sFrame);
...@@ -1156,15 +999,10 @@ void vMgrDeAuthenBeginSta(void *hDeviceContext, ...@@ -1156,15 +999,10 @@ void vMgrDeAuthenBeginSta(void *hDeviceContext,
* *
-*/ -*/
static static void s_vMgrRxAuthentication(struct vnt_private *pDevice,
void struct vnt_manager *pMgmt, struct vnt_rx_mgmt *pRxPacket)
s_vMgrRxAuthentication(
PSDevice pDevice,
PSMgmtObject pMgmt,
PSRxMgmtPacket pRxPacket
)
{ {
WLAN_FR_AUTHEN sFrame; WLAN_FR_AUTHEN sFrame;
// we better be an AP or a STA in AUTHPENDING otherwise ignore // we better be an AP or a STA in AUTHPENDING otherwise ignore
if (!(pMgmt->eCurrMode == WMAC_MODE_ESS_AP || if (!(pMgmt->eCurrMode == WMAC_MODE_ESS_AP ||
...@@ -1214,25 +1052,21 @@ s_vMgrRxAuthentication( ...@@ -1214,25 +1052,21 @@ s_vMgrRxAuthentication(
-*/ -*/
static static void s_vMgrRxAuthenSequence_1(struct vnt_private *pDevice,
void struct vnt_manager *pMgmt, PWLAN_FR_AUTHEN pFrame)
s_vMgrRxAuthenSequence_1(
PSDevice pDevice,
PSMgmtObject pMgmt,
PWLAN_FR_AUTHEN pFrame
)
{ {
PSTxMgmtPacket pTxPacket = NULL; struct vnt_tx_mgmt *pTxPacket = NULL;
unsigned int uNodeIndex; u32 uNodeIndex;
WLAN_FR_AUTHEN sFrame; WLAN_FR_AUTHEN sFrame;
PSKeyItem pTransmitKey; PSKeyItem pTransmitKey;
// Insert a Node entry /* Insert a Node entry */
if (!BSSbIsSTAInNodeDB(pDevice, pFrame->pHdr->sA3.abyAddr2, &uNodeIndex)) { if (!BSSbIsSTAInNodeDB(pDevice, pFrame->pHdr->sA3.abyAddr2,
BSSvCreateOneNode((PSDevice)pDevice, &uNodeIndex); &uNodeIndex)) {
memcpy(pMgmt->sNodeDBTable[uNodeIndex].abyMACAddr, pFrame->pHdr->sA3.abyAddr2, BSSvCreateOneNode(pDevice, &uNodeIndex);
WLAN_ADDR_LEN); memcpy(pMgmt->sNodeDBTable[uNodeIndex].abyMACAddr,
} pFrame->pHdr->sA3.abyAddr2, WLAN_ADDR_LEN);
}
if (pMgmt->bShareKeyAlgorithm) { if (pMgmt->bShareKeyAlgorithm) {
pMgmt->sNodeDBTable[uNodeIndex].eNodeState = NODE_KNOWN; pMgmt->sNodeDBTable[uNodeIndex].eNodeState = NODE_KNOWN;
...@@ -1243,9 +1077,11 @@ s_vMgrRxAuthenSequence_1( ...@@ -1243,9 +1077,11 @@ s_vMgrRxAuthenSequence_1(
} }
// send auth reply // send auth reply
pTxPacket = (PSTxMgmtPacket)pMgmt->pbyMgmtPacketPool; pTxPacket = (struct vnt_tx_mgmt *)pMgmt->pbyMgmtPacketPool;
memset(pTxPacket, 0, sizeof(STxMgmtPacket) + WLAN_AUTHEN_FR_MAXLEN); memset(pTxPacket, 0, sizeof(struct vnt_tx_mgmt)
pTxPacket->p80211Header = (PUWLAN_80211HDR)((PBYTE)pTxPacket + sizeof(STxMgmtPacket)); + WLAN_AUTHEN_FR_MAXLEN);
pTxPacket->p80211Header = (PUWLAN_80211HDR)((u8 *)pTxPacket
+ sizeof(struct vnt_tx_mgmt));
sFrame.pBuf = (PBYTE)pTxPacket->p80211Header; sFrame.pBuf = (PBYTE)pTxPacket->p80211Header;
sFrame.len = WLAN_AUTHEN_FR_MAXLEN; sFrame.len = WLAN_AUTHEN_FR_MAXLEN;
// format buffer structure // format buffer structure
...@@ -1320,16 +1156,11 @@ s_vMgrRxAuthenSequence_1( ...@@ -1320,16 +1156,11 @@ s_vMgrRxAuthenSequence_1(
* *
-*/ -*/
static static void s_vMgrRxAuthenSequence_2(struct vnt_private *pDevice,
void struct vnt_manager *pMgmt, PWLAN_FR_AUTHEN pFrame)
s_vMgrRxAuthenSequence_2(
PSDevice pDevice,
PSMgmtObject pMgmt,
PWLAN_FR_AUTHEN pFrame
)
{ {
WLAN_FR_AUTHEN sFrame; WLAN_FR_AUTHEN sFrame;
PSTxMgmtPacket pTxPacket = NULL; struct vnt_tx_mgmt *pTxPacket = NULL;
switch (cpu_to_le16((*(pFrame->pwAuthAlgorithm)))) switch (cpu_to_le16((*(pFrame->pwAuthAlgorithm))))
...@@ -1355,9 +1186,13 @@ s_vMgrRxAuthenSequence_2( ...@@ -1355,9 +1186,13 @@ s_vMgrRxAuthenSequence_2(
case WLAN_AUTH_ALG_SHAREDKEY: case WLAN_AUTH_ALG_SHAREDKEY:
if (cpu_to_le16((*(pFrame->pwStatus))) == WLAN_MGMT_STATUS_SUCCESS) { if (cpu_to_le16((*(pFrame->pwStatus))) == WLAN_MGMT_STATUS_SUCCESS) {
pTxPacket = (PSTxMgmtPacket)pMgmt->pbyMgmtPacketPool; pTxPacket = (struct vnt_tx_mgmt *)
memset(pTxPacket, 0, sizeof(STxMgmtPacket) + WLAN_AUTHEN_FR_MAXLEN); pMgmt->pbyMgmtPacketPool;
pTxPacket->p80211Header = (PUWLAN_80211HDR)((PBYTE)pTxPacket + sizeof(STxMgmtPacket)); memset(pTxPacket, 0, sizeof(struct vnt_tx_mgmt)
+ WLAN_AUTHEN_FR_MAXLEN);
pTxPacket->p80211Header
= (PUWLAN_80211HDR)((u8 *)pTxPacket
+ sizeof(struct vnt_tx_mgmt));
sFrame.pBuf = (PBYTE)pTxPacket->p80211Header; sFrame.pBuf = (PBYTE)pTxPacket->p80211Header;
sFrame.len = WLAN_AUTHEN_FR_MAXLEN; sFrame.len = WLAN_AUTHEN_FR_MAXLEN;
// format buffer structure // format buffer structure
...@@ -1421,18 +1256,13 @@ s_vMgrRxAuthenSequence_2( ...@@ -1421,18 +1256,13 @@ s_vMgrRxAuthenSequence_2(
* *
-*/ -*/
static static void s_vMgrRxAuthenSequence_3(struct vnt_private *pDevice,
void struct vnt_manager *pMgmt, PWLAN_FR_AUTHEN pFrame)
s_vMgrRxAuthenSequence_3(
PSDevice pDevice,
PSMgmtObject pMgmt,
PWLAN_FR_AUTHEN pFrame
)
{ {
PSTxMgmtPacket pTxPacket = NULL; struct vnt_tx_mgmt *pTxPacket = NULL;
unsigned int uStatusCode = 0 ; u32 uStatusCode = 0 ;
unsigned int uNodeIndex = 0; u32 uNodeIndex = 0;
WLAN_FR_AUTHEN sFrame; WLAN_FR_AUTHEN sFrame;
if (!WLAN_GET_FC_ISWEP(pFrame->pHdr->sA3.wFrameCtl)) { if (!WLAN_GET_FC_ISWEP(pFrame->pHdr->sA3.wFrameCtl)) {
uStatusCode = WLAN_MGMT_STATUS_CHALLENGE_FAIL; uStatusCode = WLAN_MGMT_STATUS_CHALLENGE_FAIL;
...@@ -1462,9 +1292,11 @@ s_vMgrRxAuthenSequence_3( ...@@ -1462,9 +1292,11 @@ s_vMgrRxAuthenSequence_3(
reply: reply:
// send auth reply // send auth reply
pTxPacket = (PSTxMgmtPacket)pMgmt->pbyMgmtPacketPool; pTxPacket = (struct vnt_tx_mgmt *)pMgmt->pbyMgmtPacketPool;
memset(pTxPacket, 0, sizeof(STxMgmtPacket) + WLAN_AUTHEN_FR_MAXLEN); memset(pTxPacket, 0, sizeof(struct vnt_tx_mgmt)
pTxPacket->p80211Header = (PUWLAN_80211HDR)((PBYTE)pTxPacket + sizeof(STxMgmtPacket)); + WLAN_AUTHEN_FR_MAXLEN);
pTxPacket->p80211Header = (PUWLAN_80211HDR)((u8 *)pTxPacket
+ sizeof(struct vnt_tx_mgmt));
sFrame.pBuf = (PBYTE)pTxPacket->p80211Header; sFrame.pBuf = (PBYTE)pTxPacket->p80211Header;
sFrame.len = WLAN_AUTHEN_FR_MAXLEN; sFrame.len = WLAN_AUTHEN_FR_MAXLEN;
// format buffer structure // format buffer structure
...@@ -1509,13 +1341,8 @@ s_vMgrRxAuthenSequence_3( ...@@ -1509,13 +1341,8 @@ s_vMgrRxAuthenSequence_3(
* None. * None.
* *
-*/ -*/
static static void s_vMgrRxAuthenSequence_4(struct vnt_private *pDevice,
void struct vnt_manager *pMgmt, PWLAN_FR_AUTHEN pFrame)
s_vMgrRxAuthenSequence_4(
PSDevice pDevice,
PSMgmtObject pMgmt,
PWLAN_FR_AUTHEN pFrame
)
{ {
if ( cpu_to_le16((*(pFrame->pwStatus))) == WLAN_MGMT_STATUS_SUCCESS ){ if ( cpu_to_le16((*(pFrame->pwStatus))) == WLAN_MGMT_STATUS_SUCCESS ){
...@@ -1547,17 +1374,12 @@ s_vMgrRxAuthenSequence_4( ...@@ -1547,17 +1374,12 @@ s_vMgrRxAuthenSequence_4(
* *
-*/ -*/
static static void s_vMgrRxDisassociation(struct vnt_private *pDevice,
void struct vnt_manager *pMgmt, struct vnt_rx_mgmt *pRxPacket)
s_vMgrRxDisassociation(
PSDevice pDevice,
PSMgmtObject pMgmt,
PSRxMgmtPacket pRxPacket
)
{ {
WLAN_FR_DISASSOC sFrame; WLAN_FR_DISASSOC sFrame;
unsigned int uNodeIndex = 0; u32 uNodeIndex = 0;
CMD_STATUS CmdStatus; CMD_STATUS CmdStatus;
if ( pMgmt->eCurrMode == WMAC_MODE_ESS_AP ){ if ( pMgmt->eCurrMode == WMAC_MODE_ESS_AP ){
// if is acting an AP.. // if is acting an AP..
...@@ -1587,7 +1409,7 @@ s_vMgrRxDisassociation( ...@@ -1587,7 +1409,7 @@ s_vMgrRxDisassociation(
pDevice->byReAssocCount = 0; pDevice->byReAssocCount = 0;
pMgmt->eCurrState = WMAC_STATE_AUTH; // jump back to the auth state! pMgmt->eCurrState = WMAC_STATE_AUTH; // jump back to the auth state!
pDevice->eCommandState = WLAN_ASSOCIATE_WAIT; pDevice->eCommandState = WLAN_ASSOCIATE_WAIT;
vMgrReAssocBeginSta((PSDevice)pDevice, pMgmt, &CmdStatus); vMgrReAssocBeginSta(pDevice, pMgmt, &CmdStatus);
if(CmdStatus == CMD_STATUS_PENDING) { if(CmdStatus == CMD_STATUS_PENDING) {
pDevice->byReAssocCount ++; pDevice->byReAssocCount ++;
return; //mike add: you'll retry for many times, so it cann't be regarded as disconnected! return; //mike add: you'll retry for many times, so it cann't be regarded as disconnected!
...@@ -1620,16 +1442,11 @@ s_vMgrRxDisassociation( ...@@ -1620,16 +1442,11 @@ s_vMgrRxDisassociation(
* *
-*/ -*/
static static void s_vMgrRxDeauthentication(struct vnt_private *pDevice,
void struct vnt_manager *pMgmt, struct vnt_rx_mgmt *pRxPacket)
s_vMgrRxDeauthentication(
PSDevice pDevice,
PSMgmtObject pMgmt,
PSRxMgmtPacket pRxPacket
)
{ {
WLAN_FR_DEAUTHEN sFrame; WLAN_FR_DEAUTHEN sFrame;
unsigned int uNodeIndex = 0; u32 uNodeIndex = 0;
if (pMgmt->eCurrMode == WMAC_MODE_ESS_AP ){ if (pMgmt->eCurrMode == WMAC_MODE_ESS_AP ){
...@@ -1692,13 +1509,9 @@ s_vMgrRxDeauthentication( ...@@ -1692,13 +1509,9 @@ s_vMgrRxDeauthentication(
* True:exceed; * True:exceed;
* False:normal case * False:normal case
-*/ -*/
static BOOL static int ChannelExceedZoneType(struct vnt_private *pDevice, u8 byCurrChannel)
ChannelExceedZoneType(
PSDevice pDevice,
BYTE byCurrChannel
)
{ {
BOOL exceed=FALSE; int exceed = FALSE;
switch(pDevice->byZoneType) { switch(pDevice->byZoneType) {
case 0x00: //USA:1~11 case 0x00: //USA:1~11
...@@ -1728,39 +1541,33 @@ ChannelExceedZoneType( ...@@ -1728,39 +1541,33 @@ ChannelExceedZoneType(
* *
-*/ -*/
static static void s_vMgrRxBeacon(struct vnt_private *pDevice,
void struct vnt_manager *pMgmt, struct vnt_rx_mgmt *pRxPacket,
s_vMgrRxBeacon( int bInScan)
PSDevice pDevice,
PSMgmtObject pMgmt,
PSRxMgmtPacket pRxPacket,
BOOL bInScan
)
{ {
PKnownBSS pBSSList;
PKnownBSS pBSSList; WLAN_FR_BEACON sFrame;
WLAN_FR_BEACON sFrame;
u64 qwTSFOffset; u64 qwTSFOffset;
BOOL bIsBSSIDEqual = FALSE; int bIsBSSIDEqual = FALSE;
BOOL bIsSSIDEqual = FALSE; int bIsSSIDEqual = FALSE;
BOOL bTSFLargeDiff = FALSE; int bTSFLargeDiff = FALSE;
BOOL bTSFOffsetPostive = FALSE; int bTSFOffsetPostive = FALSE;
BOOL bUpdateTSF = FALSE; int bUpdateTSF = FALSE;
BOOL bIsAPBeacon = FALSE; int bIsAPBeacon = FALSE;
BOOL bIsChannelEqual = FALSE; int bIsChannelEqual = FALSE;
unsigned int uLocateByteIndex; u32 uLocateByteIndex;
BYTE byTIMBitOn = 0; u8 byTIMBitOn = 0;
WORD wAIDNumber = 0; u16 wAIDNumber = 0;
unsigned int uNodeIndex; u32 uNodeIndex;
u64 qwTimestamp, qwLocalTSF; u64 qwTimestamp, qwLocalTSF;
u64 qwCurrTSF; u64 qwCurrTSF;
WORD wStartIndex = 0; u16 wStartIndex = 0;
WORD wAIDIndex = 0; u16 wAIDIndex = 0;
BYTE byCurrChannel = pRxPacket->byRxChannel; u8 byCurrChannel = pRxPacket->byRxChannel;
ERPObject sERP; ERPObject sERP;
unsigned int uRateLen = WLAN_RATES_MAXLEN; u32 uRateLen = WLAN_RATES_MAXLEN;
BOOL bChannelHit = FALSE; int bChannelHit = FALSE;
BYTE byOldPreambleType; u8 byOldPreambleType;
...@@ -2071,12 +1878,9 @@ if(ChannelExceedZoneType(pDevice,byCurrChannel)==TRUE) ...@@ -2071,12 +1878,9 @@ if(ChannelExceedZoneType(pDevice,byCurrChannel)==TRUE)
if (pMgmt->bInTIM || if (pMgmt->bInTIM ||
(pMgmt->bMulticastTIM && (pMgmt->byDTIMCount == 0))) { (pMgmt->bMulticastTIM && (pMgmt->byDTIMCount == 0))) {
pMgmt->bInTIMWake = TRUE; pMgmt->bInTIMWake = TRUE;
// send out ps-poll packet /* send out ps-poll packet */
// DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "BCN:In TIM\n"); if (pMgmt->bInTIM)
if (pMgmt->bInTIM) { PSvSendPSPOLL(pDevice);
PSvSendPSPOLL((PSDevice)pDevice);
// DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "BCN:PS-POLL sent..\n");
}
} }
else { else {
...@@ -2130,8 +1934,8 @@ if(ChannelExceedZoneType(pDevice,byCurrChannel)==TRUE) ...@@ -2130,8 +1934,8 @@ if(ChannelExceedZoneType(pDevice,byCurrChannel)==TRUE)
pMgmt->sNodeDBTable[uNodeIndex].uInActiveCount = 0; pMgmt->sNodeDBTable[uNodeIndex].uInActiveCount = 0;
} }
else { else {
// Todo, initial Node content /* Todo, initial Node content */
BSSvCreateOneNode((PSDevice)pDevice, &uNodeIndex); BSSvCreateOneNode(pDevice, &uNodeIndex);
pMgmt->abyCurrSuppRates[1] = RATEuSetIE((PWLAN_IE_SUPP_RATES)sFrame.pSuppRates, pMgmt->abyCurrSuppRates[1] = RATEuSetIE((PWLAN_IE_SUPP_RATES)sFrame.pSuppRates,
(PWLAN_IE_SUPP_RATES)pMgmt->abyCurrSuppRates, (PWLAN_IE_SUPP_RATES)pMgmt->abyCurrSuppRates,
...@@ -2242,21 +2046,20 @@ if(ChannelExceedZoneType(pDevice,byCurrChannel)==TRUE) ...@@ -2242,21 +2046,20 @@ if(ChannelExceedZoneType(pDevice,byCurrChannel)==TRUE)
* *
-*/ -*/
void vMgrCreateOwnIBSS(void *hDeviceContext, void vMgrCreateOwnIBSS(struct vnt_private *pDevice, PCMD_STATUS pStatus)
PCMD_STATUS pStatus)
{ {
PSDevice pDevice = (PSDevice)hDeviceContext; struct vnt_manager *pMgmt = &pDevice->vnt_mgmt;
PSMgmtObject pMgmt = &(pDevice->sMgmtObj); u16 wMaxBasicRate;
WORD wMaxBasicRate; u16 wMaxSuppRate;
WORD wMaxSuppRate; u8 byTopCCKBasicRate;
BYTE byTopCCKBasicRate; u8 byTopOFDMBasicRate;
BYTE byTopOFDMBasicRate;
u64 qwCurrTSF = 0; u64 qwCurrTSF = 0;
unsigned int ii; int ii;
BYTE abyRATE[] = {0x82, 0x84, 0x8B, 0x96, 0x24, 0x30, 0x48, 0x6C, 0x0C, 0x12, 0x18, 0x60}; u8 abyRATE[] = {0x82, 0x84, 0x8B, 0x96, 0x24, 0x30, 0x48, 0x6C, 0x0C,
BYTE abyCCK_RATE[] = {0x82, 0x84, 0x8B, 0x96}; 0x12, 0x18, 0x60};
BYTE abyOFDM_RATE[] = {0x0C, 0x12, 0x18, 0x24, 0x30, 0x48, 0x60, 0x6C}; u8 abyCCK_RATE[] = {0x82, 0x84, 0x8B, 0x96};
WORD wSuppRate; u8 abyOFDM_RATE[] = {0x0C, 0x12, 0x18, 0x24, 0x30, 0x48, 0x60, 0x6C};
u16 wSuppRate;
...@@ -2494,22 +2297,21 @@ void vMgrCreateOwnIBSS(void *hDeviceContext, ...@@ -2494,22 +2297,21 @@ void vMgrCreateOwnIBSS(void *hDeviceContext,
* *
-*/ -*/
void vMgrJoinBSSBegin(void *hDeviceContext, PCMD_STATUS pStatus) void vMgrJoinBSSBegin(struct vnt_private *pDevice, PCMD_STATUS pStatus)
{ {
PSDevice pDevice = (PSDevice)hDeviceContext; struct vnt_manager *pMgmt = &pDevice->vnt_mgmt;
PSMgmtObject pMgmt = &(pDevice->sMgmtObj); PKnownBSS pCurr = NULL;
PKnownBSS pCurr = NULL; int ii, uu;
unsigned int ii, uu; PWLAN_IE_SUPP_RATES pItemRates = NULL;
PWLAN_IE_SUPP_RATES pItemRates = NULL; PWLAN_IE_SUPP_RATES pItemExtRates = NULL;
PWLAN_IE_SUPP_RATES pItemExtRates = NULL; PWLAN_IE_SSID pItemSSID;
PWLAN_IE_SSID pItemSSID; u32 uRateLen = WLAN_RATES_MAXLEN;
unsigned int uRateLen = WLAN_RATES_MAXLEN; u16 wMaxBasicRate = RATE_1M;
WORD wMaxBasicRate = RATE_1M; u16 wMaxSuppRate = RATE_1M;
WORD wMaxSuppRate = RATE_1M; u16 wSuppRate;
WORD wSuppRate; u8 byTopCCKBasicRate = RATE_1M;
BYTE byTopCCKBasicRate = RATE_1M; u8 byTopOFDMBasicRate = RATE_1M;
BYTE byTopOFDMBasicRate = RATE_1M; u8 bShortSlotTime = FALSE;
BOOL bShortSlotTime = FALSE;
for (ii = 0; ii < MAX_BSS_NUM; ii++) { for (ii = 0; ii < MAX_BSS_NUM; ii++) {
...@@ -2819,23 +2621,20 @@ void vMgrJoinBSSBegin(void *hDeviceContext, PCMD_STATUS pStatus) ...@@ -2819,23 +2621,20 @@ void vMgrJoinBSSBegin(void *hDeviceContext, PCMD_STATUS pStatus)
* PCM_STATUS * PCM_STATUS
* *
-*/ -*/
static static void s_vMgrSynchBSS(struct vnt_private *pDevice, u32 uBSSMode,
void PKnownBSS pCurr, PCMD_STATUS pStatus)
s_vMgrSynchBSS (
PSDevice pDevice,
unsigned int uBSSMode,
PKnownBSS pCurr,
PCMD_STATUS pStatus
)
{ {
PSMgmtObject pMgmt = &(pDevice->sMgmtObj); struct vnt_manager *pMgmt = &pDevice->vnt_mgmt;
//1M, 2M, 5M, 11M, 18M, 24M, 36M, 54M u8 abyCurrSuppRatesG[] = {WLAN_EID_SUPP_RATES,
BYTE abyCurrSuppRatesG[] = {WLAN_EID_SUPP_RATES, 8, 0x02, 0x04, 0x0B, 0x16, 0x24, 0x30, 0x48, 0x6C}; 8, 0x02, 0x04, 0x0B, 0x16, 0x24, 0x30, 0x48, 0x6C};
BYTE abyCurrExtSuppRatesG[] = {WLAN_EID_EXTSUPP_RATES, 4, 0x0C, 0x12, 0x18, 0x60}; /* 1M, 2M, 5M, 11M, 18M, 24M, 36M, 54M*/
//6M, 9M, 12M, 48M u8 abyCurrExtSuppRatesG[] = {WLAN_EID_EXTSUPP_RATES,
BYTE abyCurrSuppRatesA[] = {WLAN_EID_SUPP_RATES, 8, 0x0C, 0x12, 0x18, 0x24, 0x30, 0x48, 0x60, 0x6C}; 4, 0x0C, 0x12, 0x18, 0x60};
BYTE abyCurrSuppRatesB[] = {WLAN_EID_SUPP_RATES, 4, 0x02, 0x04, 0x0B, 0x16}; /* 6M, 9M, 12M, 48M*/
u8 abyCurrSuppRatesA[] = {WLAN_EID_SUPP_RATES,
8, 0x0C, 0x12, 0x18, 0x24, 0x30, 0x48, 0x60, 0x6C};
u8 abyCurrSuppRatesB[] = {WLAN_EID_SUPP_RATES,
4, 0x02, 0x04, 0x0B, 0x16};
*pStatus = CMD_STATUS_FAILURE; *pStatus = CMD_STATUS_FAILURE;
...@@ -2974,21 +2773,13 @@ s_vMgrSynchBSS ( ...@@ -2974,21 +2773,13 @@ s_vMgrSynchBSS (
return; return;
}; };
static void Encyption_Rebuild(struct vnt_private *pDevice, PKnownBSS pCurr)
//mike add: fix NetworkManager 0.7.0 hidden ssid mode in WPA encryption
// ,need reset eAuthenMode and eEncryptionStatus
static void Encyption_Rebuild(
PSDevice pDevice,
PKnownBSS pCurr
)
{ {
PSMgmtObject pMgmt = &(pDevice->sMgmtObj); struct vnt_manager *pMgmt = &pDevice->vnt_mgmt;
/* unsigned int ii, uSameBssidNum=0; */
// if( uSameBssidNum>=2) { //we only check AP in hidden sssid mode if ((pMgmt->eAuthenMode == WMAC_AUTH_WPAPSK) ||
if ((pMgmt->eAuthenMode == WMAC_AUTH_WPAPSK) || //networkmanager 0.7.0 does not give the pairwise-key selsection, (pMgmt->eAuthenMode == WMAC_AUTH_WPA2PSK)) {
(pMgmt->eAuthenMode == WMAC_AUTH_WPA2PSK)) { // so we need re-selsect it according to real pairwise-key info. if (pCurr->bWPAValid == TRUE) { /*WPA-PSK */
if(pCurr->bWPAValid == TRUE) { //WPA-PSK
pMgmt->eAuthenMode = WMAC_AUTH_WPAPSK; pMgmt->eAuthenMode = WMAC_AUTH_WPAPSK;
if(pCurr->abyPKType[0] == WPA_TKIP) { if(pCurr->abyPKType[0] == WPA_TKIP) {
pDevice->eEncryptionStatus = Ndis802_11Encryption2Enabled; //TKIP pDevice->eEncryptionStatus = Ndis802_11Encryption2Enabled; //TKIP
...@@ -3027,20 +2818,15 @@ s_vMgrSynchBSS ( ...@@ -3027,20 +2818,15 @@ s_vMgrSynchBSS (
* *
-*/ -*/
static static void s_vMgrFormatTIM(struct vnt_manager *pMgmt, PWLAN_IE_TIM pTIM)
void
s_vMgrFormatTIM(
PSMgmtObject pMgmt,
PWLAN_IE_TIM pTIM
)
{ {
BYTE byMask[8] = {1, 2, 4, 8, 0x10, 0x20, 0x40, 0x80}; u8 byMask[8] = {1, 2, 4, 8, 0x10, 0x20, 0x40, 0x80};
BYTE byMap; u8 byMap;
unsigned int ii, jj; int ii, jj;
BOOL bStartFound = FALSE; int bStartFound = FALSE;
BOOL bMulticast = FALSE; int bMulticast = FALSE;
WORD wStartIndex = 0; u16 wStartIndex = 0;
WORD wEndIndex = 0; u16 wEndIndex = 0;
// Find size of partial virtual bitmap // Find size of partial virtual bitmap
...@@ -3102,30 +2888,23 @@ s_vMgrFormatTIM( ...@@ -3102,30 +2888,23 @@ s_vMgrFormatTIM(
* *
-*/ -*/
static static struct vnt_tx_mgmt *s_MgrMakeBeacon(struct vnt_private *pDevice,
PSTxMgmtPacket struct vnt_manager *pMgmt, u16 wCurrCapInfo, u16 wCurrBeaconPeriod,
s_MgrMakeBeacon( u32 uCurrChannel, u16 wCurrATIMWinodw, PWLAN_IE_SSID pCurrSSID,
PSDevice pDevice, u8 *pCurrBSSID, PWLAN_IE_SUPP_RATES pCurrSuppRates,
PSMgmtObject pMgmt, PWLAN_IE_SUPP_RATES pCurrExtSuppRates)
WORD wCurrCapInfo,
WORD wCurrBeaconPeriod,
unsigned int uCurrChannel,
WORD wCurrATIMWinodw,
PWLAN_IE_SSID pCurrSSID,
PBYTE pCurrBSSID,
PWLAN_IE_SUPP_RATES pCurrSuppRates,
PWLAN_IE_SUPP_RATES pCurrExtSuppRates
)
{ {
PSTxMgmtPacket pTxPacket = NULL; struct vnt_tx_mgmt *pTxPacket = NULL;
WLAN_FR_BEACON sFrame; WLAN_FR_BEACON sFrame;
BYTE abyBroadcastAddr[] = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff}; u8 abyBroadcastAddr[] = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff};
// prepare beacon frame /* prepare beacon frame */
pTxPacket = (PSTxMgmtPacket)pMgmt->pbyMgmtPacketPool; pTxPacket = (struct vnt_tx_mgmt *)pMgmt->pbyMgmtPacketPool;
memset(pTxPacket, 0, sizeof(STxMgmtPacket) + WLAN_BEACON_FR_MAXLEN); memset(pTxPacket, 0, sizeof(struct vnt_tx_mgmt)
pTxPacket->p80211Header = (PUWLAN_80211HDR)((PBYTE)pTxPacket + sizeof(STxMgmtPacket)); + WLAN_BEACON_FR_MAXLEN);
pTxPacket->p80211Header = (PUWLAN_80211HDR)((u8 *)pTxPacket
+ sizeof(struct vnt_tx_mgmt));
// Setup the sFrame structure. // Setup the sFrame structure.
sFrame.pBuf = (PBYTE)pTxPacket->p80211Header; sFrame.pBuf = (PBYTE)pTxPacket->p80211Header;
sFrame.len = WLAN_BEACON_FR_MAXLEN; sFrame.len = WLAN_BEACON_FR_MAXLEN;
...@@ -3277,30 +3056,22 @@ s_MgrMakeBeacon( ...@@ -3277,30 +3056,22 @@ s_MgrMakeBeacon(
PSTxMgmtPacket struct vnt_tx_mgmt *s_MgrMakeProbeResponse(struct vnt_private *pDevice,
s_MgrMakeProbeResponse( struct vnt_manager *pMgmt, u16 wCurrCapInfo, u16 wCurrBeaconPeriod,
PSDevice pDevice, u32 uCurrChannel, u16 wCurrATIMWinodw, u8 *pDstAddr,
PSMgmtObject pMgmt, PWLAN_IE_SSID pCurrSSID, u8 *pCurrBSSID,
WORD wCurrCapInfo, PWLAN_IE_SUPP_RATES pCurrSuppRates,
WORD wCurrBeaconPeriod, PWLAN_IE_SUPP_RATES pCurrExtSuppRates, u8 byPHYType)
unsigned int uCurrChannel,
WORD wCurrATIMWinodw,
PBYTE pDstAddr,
PWLAN_IE_SSID pCurrSSID,
PBYTE pCurrBSSID,
PWLAN_IE_SUPP_RATES pCurrSuppRates,
PWLAN_IE_SUPP_RATES pCurrExtSuppRates,
BYTE byPHYType
)
{ {
PSTxMgmtPacket pTxPacket = NULL; struct vnt_tx_mgmt *pTxPacket = NULL;
WLAN_FR_PROBERESP sFrame; WLAN_FR_PROBERESP sFrame;
pTxPacket = (struct vnt_tx_mgmt *)pMgmt->pbyMgmtPacketPool;
pTxPacket = (PSTxMgmtPacket)pMgmt->pbyMgmtPacketPool; memset(pTxPacket, 0, sizeof(struct vnt_tx_mgmt)
memset(pTxPacket, 0, sizeof(STxMgmtPacket) + WLAN_PROBERESP_FR_MAXLEN); + WLAN_PROBERESP_FR_MAXLEN);
pTxPacket->p80211Header = (PUWLAN_80211HDR)((PBYTE)pTxPacket + sizeof(STxMgmtPacket)); pTxPacket->p80211Header = (PUWLAN_80211HDR)((u8 *)pTxPacket
+ sizeof(struct vnt_tx_mgmt));
// Setup the sFrame structure. // Setup the sFrame structure.
sFrame.pBuf = (PBYTE)pTxPacket->p80211Header; sFrame.pBuf = (PBYTE)pTxPacket->p80211Header;
sFrame.len = WLAN_PROBERESP_FR_MAXLEN; sFrame.len = WLAN_PROBERESP_FR_MAXLEN;
...@@ -3409,27 +3180,24 @@ s_MgrMakeProbeResponse( ...@@ -3409,27 +3180,24 @@ s_MgrMakeProbeResponse(
-*/ -*/
PSTxMgmtPacket struct vnt_tx_mgmt *s_MgrMakeAssocRequest(struct vnt_private *pDevice,
s_MgrMakeAssocRequest( struct vnt_manager *pMgmt, u8 *pDAddr, u16 wCurrCapInfo,
PSDevice pDevice, u16 wListenInterval,
PSMgmtObject pMgmt, PWLAN_IE_SSID pCurrSSID,
PBYTE pDAddr, PWLAN_IE_SUPP_RATES pCurrRates,
WORD wCurrCapInfo, PWLAN_IE_SUPP_RATES pCurrExtSuppRates)
WORD wListenInterval,
PWLAN_IE_SSID pCurrSSID,
PWLAN_IE_SUPP_RATES pCurrRates,
PWLAN_IE_SUPP_RATES pCurrExtSuppRates
)
{ {
PSTxMgmtPacket pTxPacket = NULL; struct vnt_tx_mgmt *pTxPacket = NULL;
WLAN_FR_ASSOCREQ sFrame; WLAN_FR_ASSOCREQ sFrame;
PBYTE pbyIEs; u8 *pbyIEs;
PBYTE pbyRSN; u8 *pbyRSN;
pTxPacket = (PSTxMgmtPacket)pMgmt->pbyMgmtPacketPool; pTxPacket = (struct vnt_tx_mgmt *)pMgmt->pbyMgmtPacketPool;
memset(pTxPacket, 0, sizeof(STxMgmtPacket) + WLAN_ASSOCREQ_FR_MAXLEN); memset(pTxPacket, 0, sizeof(struct vnt_tx_mgmt)
pTxPacket->p80211Header = (PUWLAN_80211HDR)((PBYTE)pTxPacket + sizeof(STxMgmtPacket)); + WLAN_ASSOCREQ_FR_MAXLEN);
pTxPacket->p80211Header = (PUWLAN_80211HDR)((u8 *)pTxPacket
+ sizeof(struct vnt_tx_mgmt));
// Setup the sFrame structure. // Setup the sFrame structure.
sFrame.pBuf = (PBYTE)pTxPacket->p80211Header; sFrame.pBuf = (PBYTE)pTxPacket->p80211Header;
sFrame.len = WLAN_ASSOCREQ_FR_MAXLEN; sFrame.len = WLAN_ASSOCREQ_FR_MAXLEN;
...@@ -3671,27 +3439,23 @@ s_MgrMakeAssocRequest( ...@@ -3671,27 +3439,23 @@ s_MgrMakeAssocRequest(
-*/ -*/
PSTxMgmtPacket struct vnt_tx_mgmt *s_MgrMakeReAssocRequest(struct vnt_private *pDevice,
s_MgrMakeReAssocRequest( struct vnt_manager *pMgmt, u8 *pDAddr, u16 wCurrCapInfo,
PSDevice pDevice, u16 wListenInterval, PWLAN_IE_SSID pCurrSSID,
PSMgmtObject pMgmt, PWLAN_IE_SUPP_RATES pCurrRates,
PBYTE pDAddr, PWLAN_IE_SUPP_RATES pCurrExtSuppRates)
WORD wCurrCapInfo,
WORD wListenInterval,
PWLAN_IE_SSID pCurrSSID,
PWLAN_IE_SUPP_RATES pCurrRates,
PWLAN_IE_SUPP_RATES pCurrExtSuppRates
)
{ {
PSTxMgmtPacket pTxPacket = NULL; struct vnt_tx_mgmt *pTxPacket = NULL;
WLAN_FR_REASSOCREQ sFrame; WLAN_FR_REASSOCREQ sFrame;
PBYTE pbyIEs; u8 *pbyIEs;
PBYTE pbyRSN; u8 *pbyRSN;
pTxPacket = (PSTxMgmtPacket)pMgmt->pbyMgmtPacketPool; pTxPacket = (struct vnt_tx_mgmt *)pMgmt->pbyMgmtPacketPool;
memset( pTxPacket, 0, sizeof(STxMgmtPacket) + WLAN_REASSOCREQ_FR_MAXLEN); memset(pTxPacket, 0, sizeof(struct vnt_tx_mgmt)
pTxPacket->p80211Header = (PUWLAN_80211HDR)((PBYTE)pTxPacket + sizeof(STxMgmtPacket)); + WLAN_REASSOCREQ_FR_MAXLEN);
pTxPacket->p80211Header = (PUWLAN_80211HDR)((u8 *)pTxPacket
+ sizeof(struct vnt_tx_mgmt));
/* Setup the sFrame structure. */ /* Setup the sFrame structure. */
sFrame.pBuf = (PBYTE)pTxPacket->p80211Header; sFrame.pBuf = (PBYTE)pTxPacket->p80211Header;
sFrame.len = WLAN_REASSOCREQ_FR_MAXLEN; sFrame.len = WLAN_REASSOCREQ_FR_MAXLEN;
...@@ -3925,25 +3689,20 @@ s_MgrMakeReAssocRequest( ...@@ -3925,25 +3689,20 @@ s_MgrMakeReAssocRequest(
* *
-*/ -*/
PSTxMgmtPacket struct vnt_tx_mgmt *s_MgrMakeAssocResponse(struct vnt_private *pDevice,
s_MgrMakeAssocResponse( struct vnt_manager *pMgmt, u16 wCurrCapInfo, u16 wAssocStatus,
PSDevice pDevice, u16 wAssocAID, u8 *pDstAddr, PWLAN_IE_SUPP_RATES pCurrSuppRates,
PSMgmtObject pMgmt, PWLAN_IE_SUPP_RATES pCurrExtSuppRates)
WORD wCurrCapInfo,
WORD wAssocStatus,
WORD wAssocAID,
PBYTE pDstAddr,
PWLAN_IE_SUPP_RATES pCurrSuppRates,
PWLAN_IE_SUPP_RATES pCurrExtSuppRates
)
{ {
PSTxMgmtPacket pTxPacket = NULL; struct vnt_tx_mgmt *pTxPacket = NULL;
WLAN_FR_ASSOCRESP sFrame; WLAN_FR_ASSOCRESP sFrame;
pTxPacket = (PSTxMgmtPacket)pMgmt->pbyMgmtPacketPool; pTxPacket = (struct vnt_tx_mgmt *)pMgmt->pbyMgmtPacketPool;
memset(pTxPacket, 0, sizeof(STxMgmtPacket) + WLAN_ASSOCREQ_FR_MAXLEN); memset(pTxPacket, 0, sizeof(struct vnt_tx_mgmt)
pTxPacket->p80211Header = (PUWLAN_80211HDR)((PBYTE)pTxPacket + sizeof(STxMgmtPacket)); + WLAN_ASSOCREQ_FR_MAXLEN);
pTxPacket->p80211Header = (PUWLAN_80211HDR)((u8 *)pTxPacket
+ sizeof(struct vnt_tx_mgmt));
// Setup the sFrame structure // Setup the sFrame structure
sFrame.pBuf = (PBYTE)pTxPacket->p80211Header; sFrame.pBuf = (PBYTE)pTxPacket->p80211Header;
sFrame.len = WLAN_REASSOCRESP_FR_MAXLEN; sFrame.len = WLAN_REASSOCRESP_FR_MAXLEN;
...@@ -3999,25 +3758,20 @@ s_MgrMakeAssocResponse( ...@@ -3999,25 +3758,20 @@ s_MgrMakeAssocResponse(
-*/ -*/
PSTxMgmtPacket struct vnt_tx_mgmt *s_MgrMakeReAssocResponse(struct vnt_private *pDevice,
s_MgrMakeReAssocResponse( struct vnt_manager *pMgmt, u16 wCurrCapInfo, u16 wAssocStatus,
PSDevice pDevice, u16 wAssocAID, u8 *pDstAddr, PWLAN_IE_SUPP_RATES pCurrSuppRates,
PSMgmtObject pMgmt, PWLAN_IE_SUPP_RATES pCurrExtSuppRates)
WORD wCurrCapInfo,
WORD wAssocStatus,
WORD wAssocAID,
PBYTE pDstAddr,
PWLAN_IE_SUPP_RATES pCurrSuppRates,
PWLAN_IE_SUPP_RATES pCurrExtSuppRates
)
{ {
PSTxMgmtPacket pTxPacket = NULL; struct vnt_tx_mgmt *pTxPacket = NULL;
WLAN_FR_REASSOCRESP sFrame; WLAN_FR_REASSOCRESP sFrame;
pTxPacket = (PSTxMgmtPacket)pMgmt->pbyMgmtPacketPool; pTxPacket = (struct vnt_tx_mgmt *)pMgmt->pbyMgmtPacketPool;
memset(pTxPacket, 0, sizeof(STxMgmtPacket) + WLAN_ASSOCREQ_FR_MAXLEN); memset(pTxPacket, 0, sizeof(struct vnt_tx_mgmt)
pTxPacket->p80211Header = (PUWLAN_80211HDR)((PBYTE)pTxPacket + sizeof(STxMgmtPacket)); + WLAN_ASSOCREQ_FR_MAXLEN);
pTxPacket->p80211Header = (PUWLAN_80211HDR)((u8 *)pTxPacket
+ sizeof(struct vnt_tx_mgmt));
// Setup the sFrame structure // Setup the sFrame structure
sFrame.pBuf = (PBYTE)pTxPacket->p80211Header; sFrame.pBuf = (PBYTE)pTxPacket->p80211Header;
sFrame.len = WLAN_REASSOCRESP_FR_MAXLEN; sFrame.len = WLAN_REASSOCRESP_FR_MAXLEN;
...@@ -4072,19 +3826,14 @@ s_MgrMakeReAssocResponse( ...@@ -4072,19 +3826,14 @@ s_MgrMakeReAssocResponse(
* *
-*/ -*/
static static void s_vMgrRxProbeResponse(struct vnt_private *pDevice,
void struct vnt_manager *pMgmt, struct vnt_rx_mgmt *pRxPacket)
s_vMgrRxProbeResponse(
PSDevice pDevice,
PSMgmtObject pMgmt,
PSRxMgmtPacket pRxPacket
)
{ {
PKnownBSS pBSSList = NULL; PKnownBSS pBSSList = NULL;
WLAN_FR_PROBERESP sFrame; WLAN_FR_PROBERESP sFrame;
BYTE byCurrChannel = pRxPacket->byRxChannel; u8 byCurrChannel = pRxPacket->byRxChannel;
ERPObject sERP; ERPObject sERP;
BOOL bChannelHit = TRUE; int bChannelHit = TRUE;
memset(&sFrame, 0, sizeof(WLAN_FR_PROBERESP)); memset(&sFrame, 0, sizeof(WLAN_FR_PROBERESP));
...@@ -4204,18 +3953,13 @@ if(ChannelExceedZoneType(pDevice,byCurrChannel)==TRUE) ...@@ -4204,18 +3953,13 @@ if(ChannelExceedZoneType(pDevice,byCurrChannel)==TRUE)
-*/ -*/
static static void s_vMgrRxProbeRequest(struct vnt_private *pDevice,
void struct vnt_manager *pMgmt, struct vnt_rx_mgmt *pRxPacket)
s_vMgrRxProbeRequest(
PSDevice pDevice,
PSMgmtObject pMgmt,
PSRxMgmtPacket pRxPacket
)
{ {
WLAN_FR_PROBEREQ sFrame; WLAN_FR_PROBEREQ sFrame;
CMD_STATUS Status; CMD_STATUS Status;
PSTxMgmtPacket pTxPacket; struct vnt_tx_mgmt *pTxPacket;
BYTE byPHYType = BB_TYPE_11B; u8 byPHYType = BB_TYPE_11B;
// STA in Ad-hoc mode: when latest TBTT beacon transmit success, // STA in Ad-hoc mode: when latest TBTT beacon transmit success,
// STA have to response this request. // STA have to response this request.
...@@ -4290,15 +4034,13 @@ s_vMgrRxProbeRequest( ...@@ -4290,15 +4034,13 @@ s_vMgrRxProbeRequest(
* *
-*/ -*/
void vMgrRxManagePacket(void *hDeviceContext, void vMgrRxManagePacket(struct vnt_private *pDevice, struct vnt_manager *pMgmt,
PSMgmtObject pMgmt, struct vnt_rx_mgmt *pRxPacket)
PSRxMgmtPacket pRxPacket)
{ {
PSDevice pDevice = (PSDevice)hDeviceContext; int bInScan = FALSE;
BOOL bInScan = FALSE; u32 uNodeIndex = 0;
unsigned int uNodeIndex = 0; NODE_STATE eNodeState = 0;
NODE_STATE eNodeState = 0; CMD_STATUS Status;
CMD_STATUS Status;
if (pMgmt->eCurrMode == WMAC_MODE_ESS_AP) { if (pMgmt->eCurrMode == WMAC_MODE_ESS_AP) {
...@@ -4436,10 +4178,10 @@ void vMgrRxManagePacket(void *hDeviceContext, ...@@ -4436,10 +4178,10 @@ void vMgrRxManagePacket(void *hDeviceContext,
* TRUE if success; FALSE if failed. * TRUE if success; FALSE if failed.
* *
-*/ -*/
BOOL bMgrPrepareBeaconToSend(void *hDeviceContext, PSMgmtObject pMgmt) int bMgrPrepareBeaconToSend(struct vnt_private *pDevice,
struct vnt_manager *pMgmt)
{ {
PSDevice pDevice = (PSDevice)hDeviceContext; struct vnt_tx_mgmt *pTxPacket;
PSTxMgmtPacket pTxPacket;
// pDevice->bBeaconBufReady = FALSE; // pDevice->bBeaconBufReady = FALSE;
if (pDevice->bEncryptionEnable || pDevice->bEnable8021x){ if (pDevice->bEncryptionEnable || pDevice->bEnable8021x){
...@@ -4487,12 +4229,7 @@ BOOL bMgrPrepareBeaconToSend(void *hDeviceContext, PSMgmtObject pMgmt) ...@@ -4487,12 +4229,7 @@ BOOL bMgrPrepareBeaconToSend(void *hDeviceContext, PSMgmtObject pMgmt)
* none. * none.
* *
-*/ -*/
static static void s_vMgrLogStatus(struct vnt_manager *pMgmt, u16 wStatus)
void
s_vMgrLogStatus(
PSMgmtObject pMgmt,
WORD wStatus
)
{ {
switch( wStatus ){ switch( wStatus ){
case WLAN_MGMT_STATUS_UNSPEC_FAILURE: case WLAN_MGMT_STATUS_UNSPEC_FAILURE:
...@@ -4557,13 +4294,11 @@ s_vMgrLogStatus( ...@@ -4557,13 +4294,11 @@ s_vMgrLogStatus(
* *
-*/ -*/
BOOL bAdd_PMKID_Candidate(void *hDeviceContext, int bAdd_PMKID_Candidate(struct vnt_private *pDevice, u8 *pbyBSSID,
PBYTE pbyBSSID, PSRSNCapObject psRSNCapObj)
PSRSNCapObject psRSNCapObj)
{ {
PSDevice pDevice = (PSDevice)hDeviceContext; PPMKID_CANDIDATE pCandidateList;
PPMKID_CANDIDATE pCandidateList; int ii = 0;
unsigned int ii = 0;
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"bAdd_PMKID_Candidate START: (%d)\n", (int)pDevice->gsPMKIDCandidate.NumCandidates); DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"bAdd_PMKID_Candidate START: (%d)\n", (int)pDevice->gsPMKIDCandidate.NumCandidates);
...@@ -4619,14 +4354,14 @@ BOOL bAdd_PMKID_Candidate(void *hDeviceContext, ...@@ -4619,14 +4354,14 @@ BOOL bAdd_PMKID_Candidate(void *hDeviceContext,
* *
-*/ -*/
void vFlush_PMKID_Candidate(void *hDeviceContext) void vFlush_PMKID_Candidate(struct vnt_private *pDevice)
{ {
PSDevice pDevice = (PSDevice)hDeviceContext; if (pDevice == NULL)
return;
if (pDevice == NULL) memset(&pDevice->gsPMKIDCandidate, 0, sizeof(SPMKIDCandidateEvent));
return;
memset(&pDevice->gsPMKIDCandidate, 0, sizeof(SPMKIDCandidateEvent)); return;
} }
static BOOL static BOOL
......
...@@ -220,32 +220,26 @@ typedef enum tagWMAC_POWER_MODE { ...@@ -220,32 +220,26 @@ typedef enum tagWMAC_POWER_MODE {
/* Tx Management Packet descriptor */ /* Tx Management Packet descriptor */
typedef struct vnt_tx_mgmt { typedef struct vnt_tx_mgmt {
PUWLAN_80211HDR p80211Header;
PUWLAN_80211HDR p80211Header; u32 cbMPDULen;
unsigned int cbMPDULen; u32 cbPayloadLen;
unsigned int cbPayloadLen;
} STxMgmtPacket, *PSTxMgmtPacket; } STxMgmtPacket, *PSTxMgmtPacket;
/* Rx Management Packet descriptor */ /* Rx Management Packet descriptor */
typedef struct vnt_rx_mgmt { typedef struct vnt_rx_mgmt {
PUWLAN_80211HDR p80211Header;
PUWLAN_80211HDR p80211Header;
u64 qwLocalTSF; u64 qwLocalTSF;
unsigned int cbMPDULen; u32 cbMPDULen;
unsigned int cbPayloadLen; u32 cbPayloadLen;
unsigned int uRSSI; u32 uRSSI;
BYTE bySQ; u8 bySQ;
BYTE byRxRate; u8 byRxRate;
BYTE byRxChannel; u8 byRxChannel;
} SRxMgmtPacket, *PSRxMgmtPacket; } SRxMgmtPacket, *PSRxMgmtPacket;
typedef struct vnt_manager {
typedef struct vnt_manager
{
void *pAdapter; void *pAdapter;
// MAC address // MAC address
BYTE abyMACAddr[WLAN_ADDR_LEN]; BYTE abyMACAddr[WLAN_ADDR_LEN];
...@@ -334,7 +328,8 @@ typedef struct vnt_manager ...@@ -334,7 +328,8 @@ typedef struct vnt_manager
WORD wCountToWakeUp; WORD wCountToWakeUp;
BOOL bInTIMWake; BOOL bInTIMWake;
PBYTE pbyPSPacketPool; PBYTE pbyPSPacketPool;
BYTE byPSPacketPool[sizeof(STxMgmtPacket) + WLAN_NULLDATA_FR_MAXLEN]; u8 byPSPacketPool[sizeof(struct vnt_tx_mgmt)
+ WLAN_NULLDATA_FR_MAXLEN];
BOOL bRxBeaconInTBTTWake; BOOL bRxBeaconInTBTTWake;
BYTE abyPSTxMap[MAX_NODE_NUM + 1]; BYTE abyPSTxMap[MAX_NODE_NUM + 1];
...@@ -344,14 +339,15 @@ typedef struct vnt_manager ...@@ -344,14 +339,15 @@ typedef struct vnt_manager
// management packet pool // management packet pool
PBYTE pbyMgmtPacketPool; PBYTE pbyMgmtPacketPool;
BYTE byMgmtPacketPool[sizeof(STxMgmtPacket) + WLAN_A3FR_MAXLEN]; u8 byMgmtPacketPool[sizeof(struct vnt_tx_mgmt)
+ WLAN_A3FR_MAXLEN];
// One second callback timer // One second callback timer
struct timer_list sTimerSecondCallback; struct timer_list sTimerSecondCallback;
// Temporarily Rx Mgmt Packet Descriptor /* Temporarily Rx Mgmt Packet Descriptor */
SRxMgmtPacket sRxPacket; struct vnt_rx_mgmt sRxPacket;
// link list of known bss's (scan results) // link list of known bss's (scan results)
KnownBSS sBSSList[MAX_BSS_NUM]; KnownBSS sBSSList[MAX_BSS_NUM];
...@@ -385,8 +381,10 @@ typedef struct vnt_manager ...@@ -385,8 +381,10 @@ typedef struct vnt_manager
BYTE byNewChannel; BYTE byNewChannel;
PWLAN_IE_MEASURE_REP pCurrMeasureEIDRep; PWLAN_IE_MEASURE_REP pCurrMeasureEIDRep;
unsigned int uLengthOfRepEIDs; unsigned int uLengthOfRepEIDs;
BYTE abyCurrentMSRReq[sizeof(STxMgmtPacket) + WLAN_A3FR_MAXLEN]; u8 abyCurrentMSRReq[sizeof(struct vnt_tx_mgmt)
BYTE abyCurrentMSRRep[sizeof(STxMgmtPacket) + WLAN_A3FR_MAXLEN]; + WLAN_A3FR_MAXLEN];
u8 abyCurrentMSRRep[sizeof(struct vnt_tx_mgmt)
+ WLAN_A3FR_MAXLEN];
BYTE abyIECountry[WLAN_A3FR_MAXLEN]; BYTE abyIECountry[WLAN_A3FR_MAXLEN];
BYTE abyIBSSDFSOwner[6]; BYTE abyIBSSDFSOwner[6];
BYTE byIBSSDFSRecovery; BYTE byIBSSDFSRecovery;
...@@ -399,35 +397,29 @@ typedef struct vnt_manager ...@@ -399,35 +397,29 @@ typedef struct vnt_manager
/*--------------------- Export Functions --------------------------*/ /*--------------------- Export Functions --------------------------*/
void vMgrObjectInit(void *hDeviceContext); void vMgrObjectInit(struct vnt_private *pDevice);
void vMgrAssocBeginSta(void *hDeviceContext, void vMgrAssocBeginSta(struct vnt_private *pDevice,
PSMgmtObject pMgmt, struct vnt_manager *, PCMD_STATUS pStatus);
PCMD_STATUS pStatus);
void vMgrReAssocBeginSta(void *hDeviceContext, void vMgrReAssocBeginSta(struct vnt_private *pDevice,
PSMgmtObject pMgmt, struct vnt_manager *, PCMD_STATUS pStatus);
PCMD_STATUS pStatus);
void vMgrDisassocBeginSta(void *hDeviceContext, void vMgrDisassocBeginSta(struct vnt_private *pDevice,
PSMgmtObject pMgmt, struct vnt_manager *, u8 *abyDestAddress, u16 wReason,
PBYTE abyDestAddress, PCMD_STATUS pStatus);
WORD wReason,
PCMD_STATUS pStatus);
void vMgrAuthenBeginSta(void *hDeviceContext, void vMgrAuthenBeginSta(struct vnt_private *pDevice,
PSMgmtObject pMgmt, struct vnt_manager *, PCMD_STATUS pStatus);
PCMD_STATUS pStatus);
void vMgrCreateOwnIBSS(void *hDeviceContext, void vMgrCreateOwnIBSS(struct vnt_private *pDevice,
PCMD_STATUS pStatus); PCMD_STATUS pStatus);
void vMgrJoinBSSBegin(void *hDeviceContext, void vMgrJoinBSSBegin(struct vnt_private *pDevice,
PCMD_STATUS pStatus); PCMD_STATUS pStatus);
void vMgrRxManagePacket(void *hDeviceContext, void vMgrRxManagePacket(struct vnt_private *pDevice,
PSMgmtObject pMgmt, struct vnt_manager *, struct vnt_rx_mgmt *);
PSRxMgmtPacket pRxPacket);
/* /*
void void
...@@ -437,19 +429,16 @@ vMgrScanBegin( ...@@ -437,19 +429,16 @@ vMgrScanBegin(
); );
*/ */
void vMgrDeAuthenBeginSta(void *hDeviceContext, void vMgrDeAuthenBeginSta(struct vnt_private *pDevice,
PSMgmtObject pMgmt, struct vnt_manager *, u8 *abyDestAddress, u16 wReason,
PBYTE abyDestAddress, PCMD_STATUS pStatus);
WORD wReason,
PCMD_STATUS pStatus);
BOOL bMgrPrepareBeaconToSend(void *hDeviceContext, int bMgrPrepareBeaconToSend(struct vnt_private *pDevice,
PSMgmtObject pMgmt); struct vnt_manager *);
BOOL bAdd_PMKID_Candidate(void *hDeviceContext, int bAdd_PMKID_Candidate(struct vnt_private *pDevice,
PBYTE pbyBSSID, u8 *pbyBSSID, PSRSNCapObject psRSNCapObj);
PSRSNCapObject psRSNCapObj);
void vFlush_PMKID_Candidate(void *hDeviceContext); void vFlush_PMKID_Candidate(struct vnt_private *pDevice);
#endif /* __WMGR_H__ */ #endif /* __WMGR_H__ */
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment