staging: vt6655: Fixed all the indents and other errors in IEEE11h.c
Signed-off-by: Toon Schoenmakers <nighteyes1993@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
parent
796fd547cf
commit
51ce068c50
|
@ -41,52 +41,52 @@
|
||||||
#include "channel.h"
|
#include "channel.h"
|
||||||
|
|
||||||
/*--------------------- Static Definitions -------------------------*/
|
/*--------------------- Static Definitions -------------------------*/
|
||||||
static int msglevel =MSG_LEVEL_INFO;
|
static int msglevel = MSG_LEVEL_INFO;
|
||||||
|
|
||||||
#pragma pack(1)
|
#pragma pack(1)
|
||||||
|
|
||||||
typedef struct _WLAN_FRAME_ACTION {
|
typedef struct _WLAN_FRAME_ACTION {
|
||||||
WLAN_80211HDR_A3 Header;
|
WLAN_80211HDR_A3 Header;
|
||||||
unsigned char byCategory;
|
unsigned char byCategory;
|
||||||
unsigned char byAction;
|
unsigned char byAction;
|
||||||
unsigned char abyVars[1];
|
unsigned char abyVars[1];
|
||||||
} WLAN_FRAME_ACTION, *PWLAN_FRAME_ACTION;
|
} WLAN_FRAME_ACTION, *PWLAN_FRAME_ACTION;
|
||||||
|
|
||||||
typedef struct _WLAN_FRAME_MSRREQ {
|
typedef struct _WLAN_FRAME_MSRREQ {
|
||||||
WLAN_80211HDR_A3 Header;
|
WLAN_80211HDR_A3 Header;
|
||||||
unsigned char byCategory;
|
unsigned char byCategory;
|
||||||
unsigned char byAction;
|
unsigned char byAction;
|
||||||
unsigned char byDialogToken;
|
unsigned char byDialogToken;
|
||||||
WLAN_IE_MEASURE_REQ sMSRReqEIDs[1];
|
WLAN_IE_MEASURE_REQ sMSRReqEIDs[1];
|
||||||
} WLAN_FRAME_MSRREQ, *PWLAN_FRAME_MSRREQ;
|
} WLAN_FRAME_MSRREQ, *PWLAN_FRAME_MSRREQ;
|
||||||
|
|
||||||
typedef struct _WLAN_FRAME_MSRREP {
|
typedef struct _WLAN_FRAME_MSRREP {
|
||||||
WLAN_80211HDR_A3 Header;
|
WLAN_80211HDR_A3 Header;
|
||||||
unsigned char byCategory;
|
unsigned char byCategory;
|
||||||
unsigned char byAction;
|
unsigned char byAction;
|
||||||
unsigned char byDialogToken;
|
unsigned char byDialogToken;
|
||||||
WLAN_IE_MEASURE_REP sMSRRepEIDs[1];
|
WLAN_IE_MEASURE_REP sMSRRepEIDs[1];
|
||||||
} WLAN_FRAME_MSRREP, *PWLAN_FRAME_MSRREP;
|
} WLAN_FRAME_MSRREP, *PWLAN_FRAME_MSRREP;
|
||||||
|
|
||||||
typedef struct _WLAN_FRAME_TPCREQ {
|
typedef struct _WLAN_FRAME_TPCREQ {
|
||||||
WLAN_80211HDR_A3 Header;
|
WLAN_80211HDR_A3 Header;
|
||||||
unsigned char byCategory;
|
unsigned char byCategory;
|
||||||
unsigned char byAction;
|
unsigned char byAction;
|
||||||
unsigned char byDialogToken;
|
unsigned char byDialogToken;
|
||||||
WLAN_IE_TPC_REQ sTPCReqEIDs;
|
WLAN_IE_TPC_REQ sTPCReqEIDs;
|
||||||
} WLAN_FRAME_TPCREQ, *PWLAN_FRAME_TPCREQ;
|
} WLAN_FRAME_TPCREQ, *PWLAN_FRAME_TPCREQ;
|
||||||
|
|
||||||
typedef struct _WLAN_FRAME_TPCREP {
|
typedef struct _WLAN_FRAME_TPCREP {
|
||||||
WLAN_80211HDR_A3 Header;
|
WLAN_80211HDR_A3 Header;
|
||||||
unsigned char byCategory;
|
unsigned char byCategory;
|
||||||
unsigned char byAction;
|
unsigned char byAction;
|
||||||
unsigned char byDialogToken;
|
unsigned char byDialogToken;
|
||||||
WLAN_IE_TPC_REP sTPCRepEIDs;
|
WLAN_IE_TPC_REP sTPCRepEIDs;
|
||||||
} WLAN_FRAME_TPCREP, *PWLAN_FRAME_TPCREP;
|
} WLAN_FRAME_TPCREP, *PWLAN_FRAME_TPCREP;
|
||||||
|
|
||||||
#pragma pack()
|
#pragma pack()
|
||||||
|
|
||||||
// action field reference ieee 802.11h Table 20e
|
/* action field reference ieee 802.11h Table 20e */
|
||||||
#define ACTION_MSRREQ 0
|
#define ACTION_MSRREQ 0
|
||||||
#define ACTION_MSRREP 1
|
#define ACTION_MSRREP 1
|
||||||
#define ACTION_TPCREQ 2
|
#define ACTION_TPCREQ 2
|
||||||
|
@ -101,84 +101,100 @@ typedef struct _WLAN_FRAME_TPCREP {
|
||||||
static bool s_bRxMSRReq(PSMgmtObject pMgmt, PWLAN_FRAME_MSRREQ pMSRReq,
|
static bool s_bRxMSRReq(PSMgmtObject pMgmt, PWLAN_FRAME_MSRREQ pMSRReq,
|
||||||
unsigned int uLength)
|
unsigned int uLength)
|
||||||
{
|
{
|
||||||
size_t uNumOfEIDs = 0;
|
size_t uNumOfEIDs = 0;
|
||||||
bool bResult = true;
|
bool bResult = true;
|
||||||
|
|
||||||
if (uLength <= WLAN_A3FR_MAXLEN) {
|
if (uLength <= WLAN_A3FR_MAXLEN)
|
||||||
memcpy(pMgmt->abyCurrentMSRReq, pMSRReq, uLength);
|
memcpy(pMgmt->abyCurrentMSRReq, pMSRReq, uLength);
|
||||||
}
|
uNumOfEIDs = ((uLength - offsetof(WLAN_FRAME_MSRREQ,
|
||||||
uNumOfEIDs = ((uLength - offsetof(WLAN_FRAME_MSRREQ, sMSRReqEIDs))/ (sizeof(WLAN_IE_MEASURE_REQ)));
|
sMSRReqEIDs))/
|
||||||
pMgmt->pCurrMeasureEIDRep = &(((PWLAN_FRAME_MSRREP) (pMgmt->abyCurrentMSRRep))->sMSRRepEIDs[0]);
|
(sizeof(WLAN_IE_MEASURE_REQ)));
|
||||||
pMgmt->uLengthOfRepEIDs = 0;
|
pMgmt->pCurrMeasureEIDRep = &(((PWLAN_FRAME_MSRREP)
|
||||||
bResult = CARDbStartMeasure(pMgmt->pAdapter,
|
(pMgmt->abyCurrentMSRRep))->sMSRRepEIDs[0]);
|
||||||
((PWLAN_FRAME_MSRREQ) (pMgmt->abyCurrentMSRReq))->sMSRReqEIDs,
|
pMgmt->uLengthOfRepEIDs = 0;
|
||||||
uNumOfEIDs
|
bResult = CARDbStartMeasure(pMgmt->pAdapter,
|
||||||
);
|
((PWLAN_FRAME_MSRREQ)
|
||||||
return (bResult);
|
(pMgmt->abyCurrentMSRReq))->sMSRReqEIDs,
|
||||||
|
uNumOfEIDs
|
||||||
|
);
|
||||||
|
return bResult;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static bool s_bRxTPCReq(PSMgmtObject pMgmt, PWLAN_FRAME_TPCREQ pTPCReq, unsigned char byRate, unsigned char byRSSI)
|
static bool s_bRxTPCReq(PSMgmtObject pMgmt,
|
||||||
|
PWLAN_FRAME_TPCREQ pTPCReq,
|
||||||
|
unsigned char byRate,
|
||||||
|
unsigned char byRSSI)
|
||||||
{
|
{
|
||||||
PWLAN_FRAME_TPCREP pFrame;
|
PWLAN_FRAME_TPCREP pFrame;
|
||||||
PSTxMgmtPacket pTxPacket = NULL;
|
PSTxMgmtPacket pTxPacket = NULL;
|
||||||
|
|
||||||
|
pTxPacket = (PSTxMgmtPacket)pMgmt->pbyMgmtPacketPool;
|
||||||
|
memset(pTxPacket, 0, sizeof(STxMgmtPacket) + WLAN_A3FR_MAXLEN);
|
||||||
|
pTxPacket->p80211Header = (PUWLAN_80211HDR)((unsigned char *)pTxPacket +
|
||||||
|
sizeof(STxMgmtPacket));
|
||||||
|
|
||||||
pTxPacket = (PSTxMgmtPacket)pMgmt->pbyMgmtPacketPool;
|
pFrame = (PWLAN_FRAME_TPCREP)((unsigned char *)pTxPacket +
|
||||||
memset(pTxPacket, 0, sizeof(STxMgmtPacket) + WLAN_A3FR_MAXLEN);
|
sizeof(STxMgmtPacket));
|
||||||
pTxPacket->p80211Header = (PUWLAN_80211HDR)((unsigned char *)pTxPacket + sizeof(STxMgmtPacket));
|
|
||||||
|
|
||||||
pFrame = (PWLAN_FRAME_TPCREP)((unsigned char *)pTxPacket + sizeof(STxMgmtPacket));
|
pFrame->Header.wFrameCtl = (WLAN_SET_FC_FTYPE(WLAN_FTYPE_MGMT) |
|
||||||
|
WLAN_SET_FC_FSTYPE(WLAN_FSTYPE_ACTION)
|
||||||
|
);
|
||||||
|
|
||||||
pFrame->Header.wFrameCtl = ( WLAN_SET_FC_FTYPE(WLAN_FTYPE_MGMT) |
|
memcpy(pFrame->Header.abyAddr1,
|
||||||
WLAN_SET_FC_FSTYPE(WLAN_FSTYPE_ACTION)
|
pTPCReq->Header.abyAddr2,
|
||||||
);
|
WLAN_ADDR_LEN);
|
||||||
|
memcpy(pFrame->Header.abyAddr2,
|
||||||
|
CARDpGetCurrentAddress(pMgmt->pAdapter),
|
||||||
|
WLAN_ADDR_LEN);
|
||||||
|
memcpy(pFrame->Header.abyAddr3,
|
||||||
|
pMgmt->abyCurrBSSID,
|
||||||
|
WLAN_BSSID_LEN);
|
||||||
|
|
||||||
memcpy( pFrame->Header.abyAddr1, pTPCReq->Header.abyAddr2, WLAN_ADDR_LEN);
|
pFrame->byCategory = 0;
|
||||||
memcpy( pFrame->Header.abyAddr2, CARDpGetCurrentAddress(pMgmt->pAdapter), WLAN_ADDR_LEN);
|
pFrame->byAction = 3;
|
||||||
memcpy( pFrame->Header.abyAddr3, pMgmt->abyCurrBSSID, WLAN_BSSID_LEN);
|
pFrame->byDialogToken = ((PWLAN_FRAME_MSRREQ)
|
||||||
|
(pMgmt->abyCurrentMSRReq))->byDialogToken;
|
||||||
|
|
||||||
pFrame->byCategory = 0;
|
pFrame->sTPCRepEIDs.byElementID = WLAN_EID_TPC_REP;
|
||||||
pFrame->byAction = 3;
|
pFrame->sTPCRepEIDs.len = 2;
|
||||||
pFrame->byDialogToken = ((PWLAN_FRAME_MSRREQ) (pMgmt->abyCurrentMSRReq))->byDialogToken;
|
pFrame->sTPCRepEIDs.byTxPower = CARDbyGetTransmitPower(pMgmt->pAdapter);
|
||||||
|
switch (byRate) {
|
||||||
|
case RATE_54M:
|
||||||
|
pFrame->sTPCRepEIDs.byLinkMargin = 65 - byRSSI;
|
||||||
|
break;
|
||||||
|
case RATE_48M:
|
||||||
|
pFrame->sTPCRepEIDs.byLinkMargin = 66 - byRSSI;
|
||||||
|
break;
|
||||||
|
case RATE_36M:
|
||||||
|
pFrame->sTPCRepEIDs.byLinkMargin = 70 - byRSSI;
|
||||||
|
break;
|
||||||
|
case RATE_24M:
|
||||||
|
pFrame->sTPCRepEIDs.byLinkMargin = 74 - byRSSI;
|
||||||
|
break;
|
||||||
|
case RATE_18M:
|
||||||
|
pFrame->sTPCRepEIDs.byLinkMargin = 77 - byRSSI;
|
||||||
|
break;
|
||||||
|
case RATE_12M:
|
||||||
|
pFrame->sTPCRepEIDs.byLinkMargin = 79 - byRSSI;
|
||||||
|
break;
|
||||||
|
case RATE_9M:
|
||||||
|
pFrame->sTPCRepEIDs.byLinkMargin = 81 - byRSSI;
|
||||||
|
break;
|
||||||
|
case RATE_6M:
|
||||||
|
default:
|
||||||
|
pFrame->sTPCRepEIDs.byLinkMargin = 82 - byRSSI;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
pFrame->sTPCRepEIDs.byElementID = WLAN_EID_TPC_REP;
|
pTxPacket->cbMPDULen = sizeof(WLAN_FRAME_TPCREP);
|
||||||
pFrame->sTPCRepEIDs.len = 2;
|
pTxPacket->cbPayloadLen = sizeof(WLAN_FRAME_TPCREP) -
|
||||||
pFrame->sTPCRepEIDs.byTxPower = CARDbyGetTransmitPower(pMgmt->pAdapter);
|
WLAN_HDR_ADDR3_LEN;
|
||||||
switch (byRate) {
|
if (csMgmt_xmit(pMgmt->pAdapter, pTxPacket) != CMD_STATUS_PENDING)
|
||||||
case RATE_54M:
|
return false;
|
||||||
pFrame->sTPCRepEIDs.byLinkMargin = 65 - byRSSI;
|
return true;
|
||||||
break;
|
/* return (CARDbSendPacket(pMgmt->pAdapter, pFrame, PKT_TYPE_802_11_MNG,
|
||||||
case RATE_48M:
|
sizeof(WLAN_FRAME_TPCREP))); */
|
||||||
pFrame->sTPCRepEIDs.byLinkMargin = 66 - byRSSI;
|
|
||||||
break;
|
|
||||||
case RATE_36M:
|
|
||||||
pFrame->sTPCRepEIDs.byLinkMargin = 70 - byRSSI;
|
|
||||||
break;
|
|
||||||
case RATE_24M:
|
|
||||||
pFrame->sTPCRepEIDs.byLinkMargin = 74 - byRSSI;
|
|
||||||
break;
|
|
||||||
case RATE_18M:
|
|
||||||
pFrame->sTPCRepEIDs.byLinkMargin = 77 - byRSSI;
|
|
||||||
break;
|
|
||||||
case RATE_12M:
|
|
||||||
pFrame->sTPCRepEIDs.byLinkMargin = 79 - byRSSI;
|
|
||||||
break;
|
|
||||||
case RATE_9M:
|
|
||||||
pFrame->sTPCRepEIDs.byLinkMargin = 81 - byRSSI;
|
|
||||||
break;
|
|
||||||
case RATE_6M:
|
|
||||||
default:
|
|
||||||
pFrame->sTPCRepEIDs.byLinkMargin = 82 - byRSSI;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
pTxPacket->cbMPDULen = sizeof(WLAN_FRAME_TPCREP);
|
|
||||||
pTxPacket->cbPayloadLen = sizeof(WLAN_FRAME_TPCREP) - WLAN_HDR_ADDR3_LEN;
|
|
||||||
if (csMgmt_xmit(pMgmt->pAdapter, pTxPacket) != CMD_STATUS_PENDING)
|
|
||||||
return (false);
|
|
||||||
return (true);
|
|
||||||
// return (CARDbSendPacket(pMgmt->pAdapter, pFrame, PKT_TYPE_802_11_MNG, sizeof(WLAN_FRAME_TPCREP)));
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -204,102 +220,110 @@ static bool s_bRxTPCReq(PSMgmtObject pMgmt, PWLAN_FRAME_TPCREQ pTPCReq, unsigned
|
||||||
*
|
*
|
||||||
-*/
|
-*/
|
||||||
bool
|
bool
|
||||||
IEEE11hbMgrRxAction (
|
IEEE11hbMgrRxAction(void *pMgmtHandle, void *pRxPacket)
|
||||||
void *pMgmtHandle,
|
|
||||||
void *pRxPacket
|
|
||||||
)
|
|
||||||
{
|
{
|
||||||
PSMgmtObject pMgmt = (PSMgmtObject) pMgmtHandle;
|
PSMgmtObject pMgmt = (PSMgmtObject) pMgmtHandle;
|
||||||
PWLAN_FRAME_ACTION pAction = NULL;
|
PWLAN_FRAME_ACTION pAction = NULL;
|
||||||
unsigned int uLength = 0;
|
unsigned int uLength = 0;
|
||||||
PWLAN_IE_CH_SW pChannelSwitch = NULL;
|
PWLAN_IE_CH_SW pChannelSwitch = NULL;
|
||||||
|
|
||||||
|
/* decode the frame */
|
||||||
|
uLength = ((PSRxMgmtPacket)pRxPacket)->cbMPDULen;
|
||||||
|
if (uLength > WLAN_A3FR_MAXLEN)
|
||||||
|
return false;
|
||||||
|
|
||||||
// decode the frame
|
pAction = (PWLAN_FRAME_ACTION)
|
||||||
uLength = ((PSRxMgmtPacket)pRxPacket)->cbMPDULen;
|
(((PSRxMgmtPacket)pRxPacket)->p80211Header);
|
||||||
if (uLength > WLAN_A3FR_MAXLEN) {
|
|
||||||
return (false);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
if (pAction->byCategory == 0) {
|
||||||
|
switch (pAction->byAction) {
|
||||||
|
case ACTION_MSRREQ:
|
||||||
|
return s_bRxMSRReq(pMgmt,
|
||||||
|
(PWLAN_FRAME_MSRREQ)
|
||||||
|
pAction,
|
||||||
|
uLength);
|
||||||
|
break;
|
||||||
|
case ACTION_MSRREP:
|
||||||
|
break;
|
||||||
|
case ACTION_TPCREQ:
|
||||||
|
return s_bRxTPCReq(pMgmt,
|
||||||
|
(PWLAN_FRAME_TPCREQ) pAction,
|
||||||
|
((PSRxMgmtPacket)pRxPacket)->byRxRate,
|
||||||
|
(unsigned char)
|
||||||
|
((PSRxMgmtPacket)pRxPacket)->uRSSI);
|
||||||
|
break;
|
||||||
|
case ACTION_TPCREP:
|
||||||
|
break;
|
||||||
|
case ACTION_CHSW:
|
||||||
|
pChannelSwitch = (PWLAN_IE_CH_SW) (pAction->abyVars);
|
||||||
|
if ((pChannelSwitch->byElementID == WLAN_EID_CH_SWITCH)
|
||||||
|
&& (pChannelSwitch->len == 3)) {
|
||||||
|
/* valid element id */
|
||||||
|
CARDbChannelSwitch(pMgmt->pAdapter,
|
||||||
|
pChannelSwitch->byMode,
|
||||||
|
get_channel_mapping(pMgmt->pAdapter,
|
||||||
|
pChannelSwitch->byChannel,
|
||||||
|
pMgmt->eCurrentPHYMode),
|
||||||
|
pChannelSwitch->byCount);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
DBG_PRT(MSG_LEVEL_DEBUG,
|
||||||
|
KERN_INFO"Unknown Action = %d\n",
|
||||||
|
pAction->byAction);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"Unknown Category = %d\n",
|
||||||
|
pAction->byCategory);
|
||||||
|
pAction->byCategory |= 0x80;
|
||||||
|
|
||||||
pAction = (PWLAN_FRAME_ACTION) (((PSRxMgmtPacket)pRxPacket)->p80211Header);
|
/*return (CARDbSendPacket(pMgmt->pAdapter, pAction, PKT_TYPE_802_11_MNG,
|
||||||
|
uLength));*/
|
||||||
if (pAction->byCategory == 0) {
|
return true;
|
||||||
switch (pAction->byAction) {
|
}
|
||||||
case ACTION_MSRREQ:
|
return true;
|
||||||
return (s_bRxMSRReq(pMgmt, (PWLAN_FRAME_MSRREQ) pAction, uLength));
|
|
||||||
break;
|
|
||||||
case ACTION_MSRREP:
|
|
||||||
break;
|
|
||||||
case ACTION_TPCREQ:
|
|
||||||
return (s_bRxTPCReq(pMgmt,
|
|
||||||
(PWLAN_FRAME_TPCREQ) pAction,
|
|
||||||
((PSRxMgmtPacket)pRxPacket)->byRxRate,
|
|
||||||
(unsigned char) ((PSRxMgmtPacket)pRxPacket)->uRSSI));
|
|
||||||
break;
|
|
||||||
case ACTION_TPCREP:
|
|
||||||
break;
|
|
||||||
case ACTION_CHSW:
|
|
||||||
pChannelSwitch = (PWLAN_IE_CH_SW) (pAction->abyVars);
|
|
||||||
if ((pChannelSwitch->byElementID == WLAN_EID_CH_SWITCH) &&
|
|
||||||
(pChannelSwitch->len == 3)) {
|
|
||||||
// valid element id
|
|
||||||
CARDbChannelSwitch( pMgmt->pAdapter,
|
|
||||||
pChannelSwitch->byMode,
|
|
||||||
get_channel_mapping(pMgmt->pAdapter, pChannelSwitch->byChannel, pMgmt->eCurrentPHYMode),
|
|
||||||
pChannelSwitch->byCount
|
|
||||||
);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"Unknown Action = %d\n", pAction->byAction);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"Unknown Category = %d\n", pAction->byCategory);
|
|
||||||
pAction->byCategory |= 0x80;
|
|
||||||
|
|
||||||
//return (CARDbSendPacket(pMgmt->pAdapter, pAction, PKT_TYPE_802_11_MNG, uLength));
|
|
||||||
return (true);
|
|
||||||
}
|
|
||||||
return (true);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool IEEE11hbMSRRepTx (
|
bool IEEE11hbMSRRepTx(void *pMgmtHandle)
|
||||||
void *pMgmtHandle
|
|
||||||
)
|
|
||||||
{
|
{
|
||||||
PSMgmtObject pMgmt = (PSMgmtObject) pMgmtHandle;
|
PSMgmtObject pMgmt = (PSMgmtObject) pMgmtHandle;
|
||||||
PWLAN_FRAME_MSRREP pMSRRep = (PWLAN_FRAME_MSRREP) (pMgmt->abyCurrentMSRRep + sizeof(STxMgmtPacket));
|
PWLAN_FRAME_MSRREP pMSRRep = (PWLAN_FRAME_MSRREP)
|
||||||
size_t uLength = 0;
|
(pMgmt->abyCurrentMSRRep + sizeof(STxMgmtPacket));
|
||||||
PSTxMgmtPacket pTxPacket = NULL;
|
size_t uLength = 0;
|
||||||
|
PSTxMgmtPacket pTxPacket = NULL;
|
||||||
|
|
||||||
pTxPacket = (PSTxMgmtPacket)pMgmt->abyCurrentMSRRep;
|
pTxPacket = (PSTxMgmtPacket)pMgmt->abyCurrentMSRRep;
|
||||||
memset(pTxPacket, 0, sizeof(STxMgmtPacket) + WLAN_A3FR_MAXLEN);
|
memset(pTxPacket, 0, sizeof(STxMgmtPacket) + WLAN_A3FR_MAXLEN);
|
||||||
pTxPacket->p80211Header = (PUWLAN_80211HDR)((unsigned char *)pTxPacket + sizeof(STxMgmtPacket));
|
pTxPacket->p80211Header = (PUWLAN_80211HDR)((unsigned char *)pTxPacket +
|
||||||
|
sizeof(STxMgmtPacket));
|
||||||
|
|
||||||
|
pMSRRep->Header.wFrameCtl = (WLAN_SET_FC_FTYPE(WLAN_FTYPE_MGMT) |
|
||||||
|
WLAN_SET_FC_FSTYPE(WLAN_FSTYPE_ACTION)
|
||||||
|
);
|
||||||
|
|
||||||
pMSRRep->Header.wFrameCtl = ( WLAN_SET_FC_FTYPE(WLAN_FTYPE_MGMT) |
|
memcpy(pMSRRep->Header.abyAddr1, ((PWLAN_FRAME_MSRREQ)
|
||||||
WLAN_SET_FC_FSTYPE(WLAN_FSTYPE_ACTION)
|
(pMgmt->abyCurrentMSRReq))->Header.abyAddr2, WLAN_ADDR_LEN);
|
||||||
);
|
memcpy(pMSRRep->Header.abyAddr2,
|
||||||
|
CARDpGetCurrentAddress(pMgmt->pAdapter), WLAN_ADDR_LEN);
|
||||||
|
memcpy(pMSRRep->Header.abyAddr3, pMgmt->abyCurrBSSID, WLAN_BSSID_LEN);
|
||||||
|
|
||||||
memcpy( pMSRRep->Header.abyAddr1, ((PWLAN_FRAME_MSRREQ) (pMgmt->abyCurrentMSRReq))->Header.abyAddr2, WLAN_ADDR_LEN);
|
pMSRRep->byCategory = 0;
|
||||||
memcpy( pMSRRep->Header.abyAddr2, CARDpGetCurrentAddress(pMgmt->pAdapter), WLAN_ADDR_LEN);
|
pMSRRep->byAction = 1;
|
||||||
memcpy( pMSRRep->Header.abyAddr3, pMgmt->abyCurrBSSID, WLAN_BSSID_LEN);
|
pMSRRep->byDialogToken = ((PWLAN_FRAME_MSRREQ)
|
||||||
|
(pMgmt->abyCurrentMSRReq))->byDialogToken;
|
||||||
|
|
||||||
pMSRRep->byCategory = 0;
|
uLength = pMgmt->uLengthOfRepEIDs + offsetof(WLAN_FRAME_MSRREP,
|
||||||
pMSRRep->byAction = 1;
|
sMSRRepEIDs);
|
||||||
pMSRRep->byDialogToken = ((PWLAN_FRAME_MSRREQ) (pMgmt->abyCurrentMSRReq))->byDialogToken;
|
|
||||||
|
|
||||||
uLength = pMgmt->uLengthOfRepEIDs + offsetof(WLAN_FRAME_MSRREP, sMSRRepEIDs);
|
pTxPacket->cbMPDULen = uLength;
|
||||||
|
pTxPacket->cbPayloadLen = uLength - WLAN_HDR_ADDR3_LEN;
|
||||||
pTxPacket->cbMPDULen = uLength;
|
if (csMgmt_xmit(pMgmt->pAdapter, pTxPacket) != CMD_STATUS_PENDING)
|
||||||
pTxPacket->cbPayloadLen = uLength - WLAN_HDR_ADDR3_LEN;
|
return false;
|
||||||
if (csMgmt_xmit(pMgmt->pAdapter, pTxPacket) != CMD_STATUS_PENDING)
|
return true;
|
||||||
return (false);
|
/* return (CARDbSendPacket(pMgmt->pAdapter, pMSRRep, PKT_TYPE_802_11_MNG,
|
||||||
return (true);
|
uLength)); */
|
||||||
// return (CARDbSendPacket(pMgmt->pAdapter, pMSRRep, PKT_TYPE_802_11_MNG, uLength));
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue