forked from Minki/linux
Staging: rt3070: remove dead DOT11N_DRAFT3 code
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
parent
4ad3198c5b
commit
03ddd40f14
@ -159,9 +159,6 @@ USHORT APBuildAssociation(
|
||||
IN UCHAR *pRSNLen,
|
||||
IN BOOLEAN bWmmCapable,
|
||||
IN ULONG RalinkIe,
|
||||
#ifdef DOT11N_DRAFT3
|
||||
IN EXT_CAP_INFO_ELEMENT ExtCapInfo,
|
||||
#endif // DOT11N_DRAFT3 //
|
||||
IN HT_CAPABILITY_IE *pHtCapability,
|
||||
IN UCHAR HtCapabilityLen,
|
||||
OUT USHORT *pAid);
|
||||
@ -294,11 +291,6 @@ VOID SupportRate(
|
||||
BOOLEAN ApScanRunning(
|
||||
IN PRTMP_ADAPTER pAd);
|
||||
|
||||
#ifdef DOT11N_DRAFT3
|
||||
VOID APOverlappingBSSScan(
|
||||
IN RTMP_ADAPTER *pAd);
|
||||
#endif // DOT11N_DRAFT3 //
|
||||
|
||||
// ap_wpa.c
|
||||
|
||||
VOID APWpaStateMachineInit(
|
||||
@ -491,9 +483,6 @@ BOOLEAN PeerAssocReqCmmSanity(
|
||||
OUT UCHAR *pRSNLen,
|
||||
OUT BOOLEAN *pbWmmCapable,
|
||||
OUT ULONG *pRalinkIe,
|
||||
#ifdef DOT11N_DRAFT3
|
||||
OUT EXT_CAP_INFO_ELEMENT *pExtCapInfo,
|
||||
#endif // DOT11N_DRAFT3 //
|
||||
OUT UCHAR *pHtCapabilityLen,
|
||||
OUT HT_CAPABILITY_IE *pHtCapability);
|
||||
|
||||
|
@ -308,321 +308,14 @@ VOID PeerBAAction(
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#ifdef DOT11N_DRAFT3
|
||||
|
||||
#ifdef CONFIG_STA_SUPPORT
|
||||
VOID StaPublicAction(
|
||||
IN PRTMP_ADAPTER pAd,
|
||||
IN UCHAR Bss2040Coexist)
|
||||
{
|
||||
BSS_2040_COEXIST_IE BssCoexist;
|
||||
MLME_SCAN_REQ_STRUCT ScanReq;
|
||||
|
||||
BssCoexist.word = Bss2040Coexist;
|
||||
// AP asks Station to return a 20/40 BSS Coexistence mgmt frame. So we first starts a scan, then send back 20/40 BSS Coexistence mgmt frame
|
||||
if ((BssCoexist.field.InfoReq == 1) && (OPSTATUS_TEST_FLAG(pAd, fOP_STATUS_SCAN_2040)))
|
||||
{
|
||||
// Clear record first. After scan , will update those bit and send back to transmiter.
|
||||
pAd->CommonCfg.BSSCoexist2040.field.InfoReq = 1;
|
||||
pAd->CommonCfg.BSSCoexist2040.field.Intolerant40 = 0;
|
||||
pAd->CommonCfg.BSSCoexist2040.field.BSS20WidthReq = 0;
|
||||
// Fill out stuff for scan request
|
||||
ScanParmFill(pAd, &ScanReq, ZeroSsid, 0, BSS_ANY, SCAN_2040_BSS_COEXIST);
|
||||
MlmeEnqueue(pAd, SYNC_STATE_MACHINE, MT2_MLME_SCAN_REQ, sizeof(MLME_SCAN_REQ_STRUCT), &ScanReq);
|
||||
pAd->Mlme.CntlMachine.CurrState = CNTL_WAIT_OID_LIST_SCAN;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
Description : Build Intolerant Channel Rerpot from Trigger event table.
|
||||
return : how many bytes copied.
|
||||
*/
|
||||
ULONG BuildIntolerantChannelRep(
|
||||
IN PRTMP_ADAPTER pAd,
|
||||
IN PUCHAR pDest)
|
||||
{
|
||||
ULONG FrameLen = 0;
|
||||
ULONG ReadOffset = 0;
|
||||
UCHAR i;
|
||||
UCHAR LastRegClass = 0xff;
|
||||
PUCHAR pLen;
|
||||
|
||||
for ( i = 0;i < MAX_TRIGGER_EVENT;i++)
|
||||
{
|
||||
if (pAd->CommonCfg.TriggerEventTab.EventA[i].bValid == TRUE)
|
||||
{
|
||||
if (pAd->CommonCfg.TriggerEventTab.EventA[i].RegClass == LastRegClass)
|
||||
{
|
||||
*(pDest + ReadOffset) = (UCHAR)pAd->CommonCfg.TriggerEventTab.EventA[i].Channel;
|
||||
*pLen++;
|
||||
ReadOffset++;
|
||||
FrameLen++;
|
||||
}
|
||||
else
|
||||
{
|
||||
*(pDest + ReadOffset) = IE_2040_BSS_INTOLERANT_REPORT; // IE
|
||||
*(pDest + ReadOffset + 1) = 2; // Len = RegClass byte + channel byte.
|
||||
pLen = pDest + ReadOffset + 1;
|
||||
LastRegClass = pAd->CommonCfg.TriggerEventTab.EventA[i].RegClass;
|
||||
*(pDest + ReadOffset + 2) = LastRegClass; // Len = RegClass byte + channel byte.
|
||||
*(pDest + ReadOffset + 3) = (UCHAR)pAd->CommonCfg.TriggerEventTab.EventA[i].Channel;
|
||||
FrameLen += 4;
|
||||
ReadOffset += 4;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
return FrameLen;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
Description : Send 20/40 BSS Coexistence Action frame If one trigger event is triggered.
|
||||
*/
|
||||
VOID Send2040CoexistAction(
|
||||
IN PRTMP_ADAPTER pAd,
|
||||
IN UCHAR Wcid,
|
||||
IN BOOLEAN bAddIntolerantCha)
|
||||
{
|
||||
PUCHAR pOutBuffer = NULL;
|
||||
NDIS_STATUS NStatus;
|
||||
FRAME_ACTION_HDR Frame;
|
||||
ULONG FrameLen;
|
||||
ULONG IntolerantChaRepLen;
|
||||
|
||||
IntolerantChaRepLen = 0;
|
||||
NStatus = MlmeAllocateMemory(pAd, &pOutBuffer); //Get an unused nonpaged memory
|
||||
if(NStatus != NDIS_STATUS_SUCCESS)
|
||||
{
|
||||
DBGPRINT(RT_DEBUG_ERROR,("ACT - Send2040CoexistAction() allocate memory failed \n"));
|
||||
return;
|
||||
}
|
||||
ActHeaderInit(pAd, &Frame.Hdr, pAd->MacTab.Content[Wcid].Addr, pAd->CommonCfg.Bssid);
|
||||
Frame.Category = CATEGORY_PUBLIC;
|
||||
Frame.Action = ACTION_BSS_2040_COEXIST;
|
||||
|
||||
MakeOutgoingFrame(pOutBuffer, &FrameLen,
|
||||
sizeof(FRAME_ACTION_HDR), &Frame,
|
||||
END_OF_ARGS);
|
||||
|
||||
*(pOutBuffer + FrameLen) = pAd->CommonCfg.BSSCoexist2040.word;
|
||||
FrameLen++;
|
||||
|
||||
if (bAddIntolerantCha == TRUE)
|
||||
IntolerantChaRepLen = BuildIntolerantChannelRep(pAd, pOutBuffer + FrameLen);
|
||||
|
||||
MiniportMMRequest(pAd, QID_AC_BE, pOutBuffer, FrameLen + IntolerantChaRepLen);
|
||||
DBGPRINT(RT_DEBUG_ERROR,("ACT - Send2040CoexistAction( BSSCoexist2040 = 0x%x ) \n", pAd->CommonCfg.BSSCoexist2040.word));
|
||||
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
==========================================================================
|
||||
Description:
|
||||
After scan, Update 20/40 BSS Coexistence IE and send out.
|
||||
According to 802.11n D3.03 11.14.10
|
||||
|
||||
Parameters:
|
||||
==========================================================================
|
||||
*/
|
||||
VOID Update2040CoexistFrameAndNotify(
|
||||
IN PRTMP_ADAPTER pAd,
|
||||
IN UCHAR Wcid,
|
||||
IN BOOLEAN bAddIntolerantCha)
|
||||
{
|
||||
BSS_2040_COEXIST_IE OldValue;
|
||||
|
||||
OldValue.word = pAd->CommonCfg.BSSCoexist2040.word;
|
||||
if ((pAd->CommonCfg.TriggerEventTab.EventANo > 0) || (pAd->CommonCfg.TriggerEventTab.EventBCountDown > 0))
|
||||
pAd->CommonCfg.BSSCoexist2040.field.BSS20WidthReq = 1;
|
||||
|
||||
// Need to check !!!!
|
||||
// How STA will set Intolerant40 if implementation dependent. Now we don't set this bit first.!!!!!
|
||||
// So Only check BSS20WidthReq change.
|
||||
if (OldValue.field.BSS20WidthReq != pAd->CommonCfg.BSSCoexist2040.field.BSS20WidthReq)
|
||||
{
|
||||
Send2040CoexistAction(pAd, Wcid, bAddIntolerantCha);
|
||||
}
|
||||
}
|
||||
#endif // CONFIG_STA_SUPPORT //
|
||||
|
||||
|
||||
BOOLEAN ChannelSwitchSanityCheck(
|
||||
IN PRTMP_ADAPTER pAd,
|
||||
IN UCHAR Wcid,
|
||||
IN UCHAR NewChannel,
|
||||
IN UCHAR Secondary)
|
||||
{
|
||||
UCHAR i;
|
||||
|
||||
if (Wcid >= MAX_LEN_OF_MAC_TABLE)
|
||||
return FALSE;
|
||||
|
||||
if ((NewChannel > 7) && (Secondary == 1))
|
||||
return FALSE;
|
||||
|
||||
if ((NewChannel < 5) && (Secondary == 3))
|
||||
return FALSE;
|
||||
|
||||
// 0. Check if new channel is in the channellist.
|
||||
for (i = 0;i < pAd->ChannelListNum;i++)
|
||||
{
|
||||
if (pAd->ChannelList[i].Channel == NewChannel)
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (i == pAd->ChannelListNum)
|
||||
return FALSE;
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
VOID ChannelSwitchAction(
|
||||
IN PRTMP_ADAPTER pAd,
|
||||
IN UCHAR Wcid,
|
||||
IN UCHAR NewChannel,
|
||||
IN UCHAR Secondary)
|
||||
{
|
||||
UCHAR BBPValue = 0;
|
||||
ULONG MACValue;
|
||||
|
||||
DBGPRINT(RT_DEBUG_TRACE,("SPECTRUM - ChannelSwitchAction(NewChannel = %d , Secondary = %d) \n", NewChannel, Secondary));
|
||||
|
||||
if (ChannelSwitchSanityCheck(pAd, Wcid, NewChannel, Secondary) == FALSE)
|
||||
return;
|
||||
|
||||
// 1. Switches to BW = 20.
|
||||
if (Secondary == 0)
|
||||
{
|
||||
RTMP_BBP_IO_READ8_BY_REG_ID(pAd, BBP_R4, &BBPValue);
|
||||
BBPValue&= (~0x18);
|
||||
RTMP_BBP_IO_WRITE8_BY_REG_ID(pAd, BBP_R4, BBPValue);
|
||||
if (pAd->MACVersion == 0x28600100)
|
||||
{
|
||||
RTMP_BBP_IO_WRITE8_BY_REG_ID(pAd, BBP_R69, 0x16);
|
||||
RTMP_BBP_IO_WRITE8_BY_REG_ID(pAd, BBP_R70, 0x08);
|
||||
RTMP_BBP_IO_WRITE8_BY_REG_ID(pAd, BBP_R73, 0x11);
|
||||
DBGPRINT(RT_DEBUG_TRACE, ("!!!rt2860C !!! \n" ));
|
||||
}
|
||||
pAd->CommonCfg.BBPCurrentBW = BW_20;
|
||||
pAd->CommonCfg.Channel = NewChannel;
|
||||
pAd->CommonCfg.CentralChannel = pAd->CommonCfg.Channel;
|
||||
AsicSwitchChannel(pAd, pAd->CommonCfg.Channel,FALSE);
|
||||
AsicLockChannel(pAd, pAd->CommonCfg.Channel);
|
||||
pAd->MacTab.Content[Wcid].HTPhyMode.field.BW = 0;
|
||||
DBGPRINT(RT_DEBUG_TRACE, ("!!!20MHz !!! \n" ));
|
||||
}
|
||||
// 1. Switches to BW = 40 And Station supports BW = 40.
|
||||
else if (((Secondary == 1) || (Secondary == 3)) && (pAd->CommonCfg.HtCapability.HtCapInfo.ChannelWidth == 1))
|
||||
{
|
||||
pAd->CommonCfg.Channel = NewChannel;
|
||||
|
||||
if (Secondary == 1)
|
||||
{
|
||||
// Secondary above.
|
||||
pAd->CommonCfg.CentralChannel = pAd->CommonCfg.Channel + 2;
|
||||
RTMP_IO_READ32(pAd, TX_BAND_CFG, &MACValue);
|
||||
MACValue &= 0xfe;
|
||||
RTMP_IO_WRITE32(pAd, TX_BAND_CFG, MACValue);
|
||||
RTMP_BBP_IO_READ8_BY_REG_ID(pAd, BBP_R4, &BBPValue);
|
||||
BBPValue&= (~0x18);
|
||||
BBPValue|= (0x10);
|
||||
RTMP_BBP_IO_WRITE8_BY_REG_ID(pAd, BBP_R4, BBPValue);
|
||||
RTMP_BBP_IO_READ8_BY_REG_ID(pAd, BBP_R3, &BBPValue);
|
||||
BBPValue&= (~0x20);
|
||||
RTMP_BBP_IO_WRITE8_BY_REG_ID(pAd, BBP_R3, BBPValue);
|
||||
DBGPRINT(RT_DEBUG_TRACE, ("!!!40MHz Lower LINK UP !!! Control Channel at Below. Central = %d \n", pAd->CommonCfg.CentralChannel ));
|
||||
}
|
||||
else
|
||||
{
|
||||
// Secondary below.
|
||||
pAd->CommonCfg.CentralChannel = pAd->CommonCfg.Channel - 2;
|
||||
RTMP_IO_READ32(pAd, TX_BAND_CFG, &MACValue);
|
||||
MACValue &= 0xfe;
|
||||
MACValue |= 0x1;
|
||||
RTMP_IO_WRITE32(pAd, TX_BAND_CFG, MACValue);
|
||||
RTMP_BBP_IO_READ8_BY_REG_ID(pAd, BBP_R4, &BBPValue);
|
||||
BBPValue&= (~0x18);
|
||||
BBPValue|= (0x10);
|
||||
RTMP_BBP_IO_WRITE8_BY_REG_ID(pAd, BBP_R4, BBPValue);
|
||||
RTMP_BBP_IO_READ8_BY_REG_ID(pAd, BBP_R3, &BBPValue);
|
||||
BBPValue&= (~0x20);
|
||||
BBPValue|= (0x20);
|
||||
RTMP_BBP_IO_WRITE8_BY_REG_ID(pAd, BBP_R3, BBPValue);
|
||||
DBGPRINT(RT_DEBUG_TRACE, ("!!!40MHz Upper LINK UP !!! Control Channel at UpperCentral = %d \n", pAd->CommonCfg.CentralChannel ));
|
||||
}
|
||||
pAd->CommonCfg.BBPCurrentBW = BW_40;
|
||||
AsicSwitchChannel(pAd, pAd->CommonCfg.CentralChannel, FALSE);
|
||||
AsicLockChannel(pAd, pAd->CommonCfg.CentralChannel);
|
||||
pAd->MacTab.Content[Wcid].HTPhyMode.field.BW = 1;
|
||||
}
|
||||
}
|
||||
#endif // DOT11N_DRAFT3 //
|
||||
#endif // DOT11_N_SUPPORT //
|
||||
|
||||
VOID PeerPublicAction(
|
||||
IN PRTMP_ADAPTER pAd,
|
||||
IN MLME_QUEUE_ELEM *Elem)
|
||||
{
|
||||
#ifdef DOT11N_DRAFT3
|
||||
UCHAR Action = Elem->Msg[LENGTH_802_11+1];
|
||||
#endif // DOT11N_DRAFT3 //
|
||||
|
||||
if (Elem->Wcid >= MAX_LEN_OF_MAC_TABLE)
|
||||
return;
|
||||
|
||||
#ifdef DOT11N_DRAFT3
|
||||
switch(Action)
|
||||
{
|
||||
case ACTION_BSS_2040_COEXIST: // Format defined in IEEE 7.4.7a.1 in 11n Draf3.03
|
||||
{
|
||||
//UCHAR BssCoexist;
|
||||
BSS_2040_COEXIST_ELEMENT *pCoexistInfo;
|
||||
BSS_2040_COEXIST_IE *pBssCoexistIe;
|
||||
BSS_2040_INTOLERANT_CH_REPORT *pIntolerantReport = NULL;
|
||||
|
||||
if (Elem->MsgLen <= (LENGTH_802_11 + sizeof(BSS_2040_COEXIST_ELEMENT)) )
|
||||
{
|
||||
DBGPRINT(RT_DEBUG_ERROR, ("ACTION - 20/40 BSS Coexistence Management Frame length too short! len = %ld!\n", Elem->MsgLen));
|
||||
break;
|
||||
}
|
||||
DBGPRINT(RT_DEBUG_TRACE, ("ACTION - 20/40 BSS Coexistence Management action----> \n"));
|
||||
hex_dump("CoexistenceMgmtFrame", Elem->Msg, Elem->MsgLen);
|
||||
|
||||
|
||||
pCoexistInfo = (BSS_2040_COEXIST_ELEMENT *) &Elem->Msg[LENGTH_802_11+2];
|
||||
//hex_dump("CoexistInfo", (PUCHAR)pCoexistInfo, sizeof(BSS_2040_COEXIST_ELEMENT));
|
||||
if (Elem->MsgLen >= (LENGTH_802_11 + sizeof(BSS_2040_COEXIST_ELEMENT) + sizeof(BSS_2040_INTOLERANT_CH_REPORT)))
|
||||
{
|
||||
pIntolerantReport = (BSS_2040_INTOLERANT_CH_REPORT *)((PUCHAR)pCoexistInfo + sizeof(BSS_2040_COEXIST_ELEMENT));
|
||||
}
|
||||
//hex_dump("IntolerantReport ", (PUCHAR)pIntolerantReport, sizeof(BSS_2040_INTOLERANT_CH_REPORT));
|
||||
|
||||
pBssCoexistIe = (BSS_2040_COEXIST_IE *)(&pCoexistInfo->BssCoexistIe);
|
||||
|
||||
#ifdef CONFIG_STA_SUPPORT
|
||||
IF_DEV_CONFIG_OPMODE_ON_STA(pAd)
|
||||
{
|
||||
if (INFRA_ON(pAd))
|
||||
{
|
||||
StaPublicAction(pAd, pCoexistInfo);
|
||||
}
|
||||
}
|
||||
#endif // CONFIG_STA_SUPPORT //
|
||||
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
#endif // DOT11N_DRAFT3 //
|
||||
|
||||
}
|
||||
|
||||
|
||||
@ -701,51 +394,6 @@ static VOID respond_ht_information_exchange_action(
|
||||
MlmeFreeMemory(pAd, pOutBuffer);
|
||||
}
|
||||
|
||||
|
||||
#ifdef DOT11N_DRAFT3
|
||||
VOID SendNotifyBWActionFrame(
|
||||
IN PRTMP_ADAPTER pAd,
|
||||
IN UCHAR Wcid,
|
||||
IN UCHAR apidx)
|
||||
{
|
||||
PUCHAR pOutBuffer = NULL;
|
||||
NDIS_STATUS NStatus;
|
||||
FRAME_ACTION_HDR Frame;
|
||||
ULONG FrameLen;
|
||||
PUCHAR pAddr1;
|
||||
|
||||
|
||||
NStatus = MlmeAllocateMemory(pAd, &pOutBuffer); //Get an unused nonpaged memory
|
||||
if(NStatus != NDIS_STATUS_SUCCESS)
|
||||
{
|
||||
DBGPRINT(RT_DEBUG_ERROR,("ACT - SendNotifyBWAction() allocate memory failed \n"));
|
||||
return;
|
||||
}
|
||||
|
||||
if (Wcid == MCAST_WCID)
|
||||
pAddr1 = &BROADCAST_ADDR[0];
|
||||
else
|
||||
pAddr1 = pAd->MacTab.Content[Wcid].Addr;
|
||||
ActHeaderInit(pAd, &Frame.Hdr, pAddr1, pAd->ApCfg.MBSSID[apidx].Bssid, pAd->ApCfg.MBSSID[apidx].Bssid);
|
||||
|
||||
Frame.Category = CATEGORY_HT;
|
||||
Frame.Action = NOTIFY_BW_ACTION;
|
||||
|
||||
MakeOutgoingFrame(pOutBuffer, &FrameLen,
|
||||
sizeof(FRAME_ACTION_HDR), &Frame,
|
||||
END_OF_ARGS);
|
||||
|
||||
*(pOutBuffer + FrameLen) = pAd->CommonCfg.AddHTInfo.AddHtInfo.RecomWidth;
|
||||
FrameLen++;
|
||||
|
||||
|
||||
MiniportMMRequest(pAd, QID_AC_BE, pOutBuffer, FrameLen);
|
||||
DBGPRINT(RT_DEBUG_TRACE,("ACT - SendNotifyBWAction(NotifyBW= %d)!\n", pAd->CommonCfg.AddHTInfo.AddHtInfo.RecomWidth));
|
||||
|
||||
}
|
||||
#endif // DOT11N_DRAFT3 //
|
||||
|
||||
|
||||
VOID PeerHTAction(
|
||||
IN PRTMP_ADAPTER pAd,
|
||||
IN MLME_QUEUE_ELEM *Elem)
|
||||
|
@ -1174,10 +1174,6 @@ VOID RTMPWriteTxWI(
|
||||
|
||||
// If CCK or OFDM, BW must be 20
|
||||
pTxWI->BW = (pTransmit->field.MODE <= MODE_OFDM) ? (BW_20) : (pTransmit->field.BW);
|
||||
#ifdef DOT11N_DRAFT3
|
||||
if (pTxWI->BW)
|
||||
pTxWI->BW = (pAd->CommonCfg.AddHTInfo.AddHtInfo.RecomWidth == 0) ? (BW_20) : (pTransmit->field.BW);
|
||||
#endif // DOT11N_DRAFT3 //
|
||||
|
||||
pTxWI->MCS = pTransmit->field.MCS;
|
||||
pTxWI->PHYMODE = pTransmit->field.MODE;
|
||||
@ -1257,10 +1253,6 @@ VOID RTMPWriteTxWI_Data(
|
||||
// If CCK or OFDM, BW must be 20
|
||||
pTxWI->BW = (pTransmit->field.MODE <= MODE_OFDM) ? (BW_20) : (pTransmit->field.BW);
|
||||
#ifdef DOT11_N_SUPPORT
|
||||
#ifdef DOT11N_DRAFT3
|
||||
if (pTxWI->BW)
|
||||
pTxWI->BW = (pAd->CommonCfg.AddHTInfo.AddHtInfo.RecomWidth == 0) ? (BW_20) : (pTransmit->field.BW);
|
||||
#endif // DOT11N_DRAFT3 //
|
||||
pTxWI->AMPDU = ((pTxBlk->TxFrameType == TX_AMPDU_FRAME) ? TRUE : FALSE);
|
||||
|
||||
// John tune the performace with Intel Client in 20 MHz performance
|
||||
@ -1371,11 +1363,6 @@ VOID RTMPWriteTxWI_Cache(
|
||||
pTxWI->AMPDU = ((pMacEntry->NoBADataCountDown == 0) ? TRUE: FALSE);
|
||||
pTxWI->MIMOps = 0;
|
||||
|
||||
#ifdef DOT11N_DRAFT3
|
||||
if (pTxWI->BW)
|
||||
pTxWI->BW = (pAd->CommonCfg.AddHTInfo.AddHtInfo.RecomWidth == 0) ? (BW_20) : (pTransmit->field.BW);
|
||||
#endif // DOT11N_DRAFT3 //
|
||||
|
||||
if (pAd->CommonCfg.bMIMOPSEnable)
|
||||
{
|
||||
// MIMO Power Save Mode
|
||||
|
@ -786,76 +786,6 @@ BOOLEAN PeerBeaconAndProbeRspSanity(
|
||||
|
||||
}
|
||||
|
||||
#ifdef DOT11N_DRAFT3
|
||||
/*
|
||||
==========================================================================
|
||||
Description:
|
||||
MLME message sanity check for some IE addressed in 802.11n d3.03.
|
||||
Return:
|
||||
TRUE if all parameters are OK, FALSE otherwise
|
||||
|
||||
IRQL = DISPATCH_LEVEL
|
||||
|
||||
==========================================================================
|
||||
*/
|
||||
BOOLEAN PeerBeaconAndProbeRspSanity2(
|
||||
IN PRTMP_ADAPTER pAd,
|
||||
IN VOID *Msg,
|
||||
IN ULONG MsgLen,
|
||||
OUT UCHAR *RegClass)
|
||||
{
|
||||
CHAR *Ptr;
|
||||
PFRAME_802_11 pFrame;
|
||||
PEID_STRUCT pEid;
|
||||
ULONG Length = 0;
|
||||
|
||||
pFrame = (PFRAME_802_11)Msg;
|
||||
|
||||
*RegClass = 0;
|
||||
Ptr = pFrame->Octet;
|
||||
Length += LENGTH_802_11;
|
||||
|
||||
// get timestamp from payload and advance the pointer
|
||||
Ptr += TIMESTAMP_LEN;
|
||||
Length += TIMESTAMP_LEN;
|
||||
|
||||
// get beacon interval from payload and advance the pointer
|
||||
Ptr += 2;
|
||||
Length += 2;
|
||||
|
||||
// get capability info from payload and advance the pointer
|
||||
Ptr += 2;
|
||||
Length += 2;
|
||||
|
||||
pEid = (PEID_STRUCT) Ptr;
|
||||
|
||||
// get variable fields from payload and advance the pointer
|
||||
while ((Length + 2 + pEid->Len) <= MsgLen)
|
||||
{
|
||||
switch(pEid->Eid)
|
||||
{
|
||||
case IE_SUPP_REG_CLASS:
|
||||
if(pEid->Len > 0)
|
||||
{
|
||||
*RegClass = *pEid->Octet;
|
||||
}
|
||||
else
|
||||
{
|
||||
DBGPRINT(RT_DEBUG_TRACE, ("PeerBeaconAndProbeRspSanity - wrong IE_SSID (len=%d)\n",pEid->Len));
|
||||
return FALSE;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
Length = Length + 2 + pEid->Len; // Eid[1] + Len[1]+ content[Len]
|
||||
pEid = (PEID_STRUCT)((UCHAR*)pEid + 2 + pEid->Len);
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
|
||||
}
|
||||
#endif // DOT11N_DRAFT3 //
|
||||
|
||||
/*
|
||||
==========================================================================
|
||||
Description:
|
||||
|
@ -639,21 +639,6 @@ VOID ScanNextChannel(
|
||||
#endif // RT_BIG_ENDIAN //
|
||||
}
|
||||
FrameLen += Tmp;
|
||||
|
||||
#ifdef DOT11N_DRAFT3
|
||||
if (pAd->CommonCfg.BACapability.field.b2040CoexistScanSup == 1)
|
||||
{
|
||||
ULONG Tmp;
|
||||
HtLen = 1;
|
||||
MakeOutgoingFrame(pOutBuffer + FrameLen, &Tmp,
|
||||
1, &ExtHtCapIe,
|
||||
1, &HtLen,
|
||||
1, &pAd->CommonCfg.BSSCoexist2040.word,
|
||||
END_OF_ARGS);
|
||||
|
||||
FrameLen += Tmp;
|
||||
}
|
||||
#endif // DOT11N_DRAFT3 //
|
||||
}
|
||||
#endif // DOT11_N_SUPPORT //
|
||||
|
||||
|
@ -346,9 +346,6 @@ UCHAR ExtRateIe = IE_EXT_SUPP_RATES;
|
||||
UCHAR HtCapIe = IE_HT_CAP;
|
||||
UCHAR AddHtInfoIe = IE_ADD_HT;
|
||||
UCHAR NewExtChanIe = IE_SECONDARY_CH_OFFSET;
|
||||
#ifdef DOT11N_DRAFT3
|
||||
UCHAR ExtHtCapIe = IE_EXT_CAPABILITY;
|
||||
#endif // DOT11N_DRAFT3 //
|
||||
#endif // DOT11_N_SUPPORT //
|
||||
UCHAR ErpIe = IE_ERP;
|
||||
UCHAR DsIe = IE_DS_PARM;
|
||||
@ -1208,14 +1205,6 @@ SKIP_AUTO_SCAN_CONN:
|
||||
}
|
||||
#endif // DOT11_N_SUPPORT //
|
||||
|
||||
|
||||
#ifdef DOT11_N_SUPPORT
|
||||
#ifdef DOT11N_DRAFT3
|
||||
if (OPSTATUS_TEST_FLAG(pAd, fOP_STATUS_SCAN_2040))
|
||||
TriEventCounterMaintenance(pAd);
|
||||
#endif // DOT11N_DRAFT3 //
|
||||
#endif // DOT11_N_SUPPORT //
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
@ -3792,111 +3781,6 @@ ULONG BssTableSetEntry(
|
||||
}
|
||||
|
||||
#ifdef CONFIG_STA_SUPPORT
|
||||
#ifdef DOT11_N_SUPPORT
|
||||
#ifdef DOT11N_DRAFT3
|
||||
VOID TriEventInit(
|
||||
IN PRTMP_ADAPTER pAd)
|
||||
{
|
||||
UCHAR i;
|
||||
|
||||
for (i = 0;i < MAX_TRIGGER_EVENT;i++)
|
||||
pAd->CommonCfg.TriggerEventTab.EventA[i].bValid = FALSE;
|
||||
|
||||
pAd->CommonCfg.TriggerEventTab.EventANo = 0;
|
||||
pAd->CommonCfg.TriggerEventTab.EventBCountDown = 0;
|
||||
}
|
||||
|
||||
ULONG TriEventTableSetEntry(
|
||||
IN PRTMP_ADAPTER pAd,
|
||||
OUT TRIGGER_EVENT_TAB *Tab,
|
||||
IN PUCHAR pBssid,
|
||||
IN HT_CAPABILITY_IE *pHtCapability,
|
||||
IN UCHAR HtCapabilityLen,
|
||||
IN UCHAR RegClass,
|
||||
IN UCHAR ChannelNo)
|
||||
{
|
||||
// Event A
|
||||
if (HtCapabilityLen == 0)
|
||||
{
|
||||
if (Tab->EventANo < MAX_TRIGGER_EVENT)
|
||||
{
|
||||
RTMPMoveMemory(Tab->EventA[Tab->EventANo].BSSID, pBssid, 6);
|
||||
Tab->EventA[Tab->EventANo].bValid = TRUE;
|
||||
Tab->EventA[Tab->EventANo].Channel = ChannelNo;
|
||||
Tab->EventA[Tab->EventANo].CDCounter = pAd->CommonCfg.Dot11BssWidthChanTranDelay;
|
||||
if (RegClass != 0)
|
||||
{
|
||||
// Beacon has Regulatory class IE. So use beacon's
|
||||
Tab->EventA[Tab->EventANo].RegClass = RegClass;
|
||||
}
|
||||
else
|
||||
{
|
||||
// Use Station's Regulatory class instead.
|
||||
if (pAd->StaActive.SupportedHtPhy.bHtEnable == TRUE)
|
||||
{
|
||||
if (pAd->CommonCfg.CentralChannel > pAd->CommonCfg.Channel)
|
||||
{
|
||||
Tab->EventA[Tab->EventANo].RegClass = 32;
|
||||
}
|
||||
else if (pAd->CommonCfg.CentralChannel < pAd->CommonCfg.Channel)
|
||||
Tab->EventA[Tab->EventANo].RegClass = 33;
|
||||
}
|
||||
else
|
||||
Tab->EventA[Tab->EventANo].RegClass = ??;
|
||||
|
||||
}
|
||||
|
||||
Tab->EventANo ++;
|
||||
}
|
||||
}
|
||||
else if (pHtCapability->HtCapInfo.Intolerant40)
|
||||
{
|
||||
Tab->EventBCountDown = pAd->CommonCfg.Dot11BssWidthChanTranDelay;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
========================================================================
|
||||
Routine Description:
|
||||
Trigger Event table Maintainence called once every second.
|
||||
|
||||
Arguments:
|
||||
// IRQL = DISPATCH_LEVEL
|
||||
========================================================================
|
||||
*/
|
||||
VOID TriEventCounterMaintenance(
|
||||
IN PRTMP_ADAPTER pAd)
|
||||
{
|
||||
UCHAR i;
|
||||
BOOLEAN bNotify = FALSE;
|
||||
for (i = 0;i < MAX_TRIGGER_EVENT;i++)
|
||||
{
|
||||
if (pAd->CommonCfg.TriggerEventTab.EventA[i].bValid && (pAd->CommonCfg.TriggerEventTab.EventA[i].CDCounter > 0))
|
||||
{
|
||||
pAd->CommonCfg.TriggerEventTab.EventA[i].CDCounter--;
|
||||
if (pAd->CommonCfg.TriggerEventTab.EventA[i].CDCounter == 0)
|
||||
{
|
||||
pAd->CommonCfg.TriggerEventTab.EventA[i].bValid = FALSE;
|
||||
pAd->CommonCfg.TriggerEventTab.EventANo --;
|
||||
// Need to send 20/40 Coexistence Notify frame if has status change.
|
||||
bNotify = TRUE;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (pAd->CommonCfg.TriggerEventTab.EventBCountDown > 0)
|
||||
{
|
||||
pAd->CommonCfg.TriggerEventTab.EventBCountDown--;
|
||||
if (pAd->CommonCfg.TriggerEventTab.EventBCountDown == 0)
|
||||
bNotify = TRUE;
|
||||
}
|
||||
|
||||
if (bNotify == TRUE)
|
||||
Update2040CoexistFrameAndNotify(pAd, BSSID_WCID, TRUE);
|
||||
}
|
||||
#endif // DOT11N_DRAFT3 //
|
||||
#endif // DOT11_N_SUPPORT //
|
||||
|
||||
// IRQL = DISPATCH_LEVEL
|
||||
VOID BssTableSsidSort(
|
||||
IN PRTMP_ADAPTER pAd,
|
||||
|
@ -3305,17 +3305,6 @@ VOID UserCfgInit(
|
||||
pAd->bBroadComHT = FALSE;
|
||||
pAd->CommonCfg.bRdg = FALSE;
|
||||
|
||||
#ifdef DOT11N_DRAFT3
|
||||
pAd->CommonCfg.Dot11OBssScanPassiveDwell = dot11OBSSScanPassiveDwell; // Unit : TU. 5~1000
|
||||
pAd->CommonCfg.Dot11OBssScanActiveDwell = dot11OBSSScanActiveDwell; // Unit : TU. 10~1000
|
||||
pAd->CommonCfg.Dot11BssWidthTriggerScanInt = dot11BSSWidthTriggerScanInterval; // Unit : Second
|
||||
pAd->CommonCfg.Dot11OBssScanPassiveTotalPerChannel = dot11OBSSScanPassiveTotalPerChannel; // Unit : TU. 200~10000
|
||||
pAd->CommonCfg.Dot11OBssScanActiveTotalPerChannel = dot11OBSSScanActiveTotalPerChannel; // Unit : TU. 20~10000
|
||||
pAd->CommonCfg.Dot11BssWidthChanTranDelayFactor = dot11BSSWidthChannelTransactionDelayFactor;
|
||||
pAd->CommonCfg.Dot11OBssScanActivityThre = dot11BSSScanActivityThreshold; // Unit : percentage
|
||||
pAd->CommonCfg.Dot11BssWidthChanTranDelay = (pAd->CommonCfg.Dot11BssWidthTriggerScanInt * pAd->CommonCfg.Dot11BssWidthChanTranDelayFactor);
|
||||
#endif // DOT11N_DRAFT3 //
|
||||
|
||||
NdisZeroMemory(&pAd->CommonCfg.AddHTInfo, sizeof(pAd->CommonCfg.AddHTInfo));
|
||||
pAd->CommonCfg.BACapability.field.MMPSmode = MMPS_ENABLE;
|
||||
pAd->CommonCfg.BACapability.field.MpduDensity = 0;
|
||||
|
@ -1734,28 +1734,6 @@ VOID PeerSpectrumAction(
|
||||
|
||||
case SPEC_CHANNEL_SWITCH:
|
||||
{
|
||||
#ifdef DOT11N_DRAFT3
|
||||
SEC_CHA_OFFSET_IE Secondary;
|
||||
CHA_SWITCH_ANNOUNCE_IE ChannelSwitch;
|
||||
|
||||
// 802.11h only has Channel Switch Announcement IE.
|
||||
RTMPMoveMemory(&ChannelSwitch, &Elem->Msg[LENGTH_802_11+4], sizeof (CHA_SWITCH_ANNOUNCE_IE));
|
||||
|
||||
// 802.11n D3.03 adds secondary channel offset element in the end.
|
||||
if (Elem->MsgLen == (LENGTH_802_11 + 2 + sizeof (CHA_SWITCH_ANNOUNCE_IE) + sizeof (SEC_CHA_OFFSET_IE)))
|
||||
{
|
||||
RTMPMoveMemory(&Secondary, &Elem->Msg[LENGTH_802_11+9], sizeof (SEC_CHA_OFFSET_IE));
|
||||
}
|
||||
else
|
||||
{
|
||||
Secondary.SecondaryChannelOffset = 0;
|
||||
}
|
||||
|
||||
if ((Elem->Msg[LENGTH_802_11+2] == IE_CHANNEL_SWITCH_ANNOUNCEMENT) && (Elem->Msg[LENGTH_802_11+3] == 3))
|
||||
{
|
||||
ChannelSwitchAction(pAd, Elem->Wcid, ChannelSwitch.NewChannel, Secondary.SecondaryChannelOffset);
|
||||
}
|
||||
#endif // DOT11N_DRAFT3 //
|
||||
}
|
||||
PeerChSwAnnAction(pAd, Elem);
|
||||
break;
|
||||
|
@ -134,10 +134,6 @@
|
||||
#define SCAN_CISCO_CHANNEL_LOAD 23 // Single channel passive scan for channel load collection
|
||||
#define FAST_SCAN_ACTIVE 24 // scan with probe request, and wait beacon and probe response
|
||||
|
||||
#ifdef DOT11N_DRAFT3
|
||||
#define SCAN_2040_BSS_COEXIST 26
|
||||
#endif // DOT11N_DRAFT3 //
|
||||
|
||||
//#define BSS_TABLE_EMPTY(x) ((x).BssNr == 0)
|
||||
#define MAC_ADDR_IS_GROUP(Addr) (((Addr[0]) & 0x01))
|
||||
#define MAC_ADDR_HASH(Addr) (Addr[0] ^ Addr[1] ^ Addr[2] ^ Addr[3] ^ Addr[4] ^ Addr[5])
|
||||
|
@ -240,9 +240,6 @@ extern UCHAR ExtRateIe;
|
||||
extern UCHAR HtCapIe;
|
||||
extern UCHAR AddHtInfoIe;
|
||||
extern UCHAR NewExtChanIe;
|
||||
#ifdef DOT11N_DRAFT3
|
||||
extern UCHAR ExtHtCapIe;
|
||||
#endif // DOT11N_DRAFT3 //
|
||||
#endif // DOT11_N_SUPPORT //
|
||||
|
||||
extern UCHAR ErpIe;
|
||||
@ -1278,9 +1275,6 @@ typedef struct _BBP_R66_TUNING {
|
||||
typedef struct _CHANNEL_TX_POWER {
|
||||
USHORT RemainingTimeForUse; //unit: sec
|
||||
UCHAR Channel;
|
||||
#ifdef DOT11N_DRAFT3
|
||||
BOOLEAN bEffectedChannel; // For BW 40 operating in 2.4GHz , the "effected channel" is the channel that is covered in 40Mhz.
|
||||
#endif // DOT11N_DRAFT3 //
|
||||
CHAR Power;
|
||||
CHAR Power2;
|
||||
UCHAR MaxTxPwr;
|
||||
@ -1726,17 +1720,6 @@ typedef struct _MULTISSID_STRUCT {
|
||||
UCHAR BcnBufIdx;
|
||||
} MULTISSID_STRUCT, *PMULTISSID_STRUCT;
|
||||
|
||||
|
||||
|
||||
#ifdef DOT11N_DRAFT3
|
||||
typedef enum _BSS2040COEXIST_FLAG{
|
||||
BSS_2040_COEXIST_DISABLE = 0,
|
||||
BSS_2040_COEXIST_TIMER_FIRED = 1,
|
||||
BSS_2040_COEXIST_INFO_SYNC = 2,
|
||||
BSS_2040_COEXIST_INFO_NOTIFY = 4,
|
||||
}BSS2040COEXIST_FLAG;
|
||||
#endif // DOT11N_DRAFT3 //
|
||||
|
||||
// configuration common to OPMODE_AP as well as OPMODE_STA
|
||||
typedef struct _COMMON_CONFIG {
|
||||
|
||||
@ -1853,33 +1836,6 @@ typedef struct _COMMON_CONFIG {
|
||||
//This IE is included in channel switch ammouncement frames 7.4.1.5, beacons, probe Rsp.
|
||||
NEW_EXT_CHAN_IE NewExtChanOffset; //7.3.2.20A, 1 if extension channel is above the control channel, 3 if below, 0 if not present
|
||||
|
||||
#ifdef DOT11N_DRAFT3
|
||||
UCHAR Bss2040CoexistFlag; // bit 0: bBssCoexistTimerRunning, bit 1: NeedSyncAddHtInfo.
|
||||
RALINK_TIMER_STRUCT Bss2040CoexistTimer;
|
||||
|
||||
//This IE is used for 20/40 BSS Coexistence.
|
||||
BSS_2040_COEXIST_IE BSS2040CoexistInfo;
|
||||
// ====== 11n D3.0 =======================>
|
||||
USHORT Dot11OBssScanPassiveDwell; // Unit : TU. 5~1000
|
||||
USHORT Dot11OBssScanActiveDwell; // Unit : TU. 10~1000
|
||||
USHORT Dot11BssWidthTriggerScanInt; // Unit : Second
|
||||
USHORT Dot11OBssScanPassiveTotalPerChannel; // Unit : TU. 200~10000
|
||||
USHORT Dot11OBssScanActiveTotalPerChannel; // Unit : TU. 20~10000
|
||||
USHORT Dot11BssWidthChanTranDelayFactor;
|
||||
USHORT Dot11OBssScanActivityThre; // Unit : percentage
|
||||
|
||||
ULONG Dot11BssWidthChanTranDelay; // multiple of (Dot11BssWidthTriggerScanInt * Dot11BssWidthChanTranDelayFactor)
|
||||
ULONG CountDownCtr; // CountDown Counter from (Dot11BssWidthTriggerScanInt * Dot11BssWidthChanTranDelayFactor)
|
||||
|
||||
NDIS_SPIN_LOCK TriggerEventTabLock;
|
||||
BSS_2040_COEXIST_IE LastBSSCoexist2040;
|
||||
BSS_2040_COEXIST_IE BSSCoexist2040;
|
||||
TRIGGER_EVENT_TAB TriggerEventTab;
|
||||
UCHAR ChannelListIdx;
|
||||
// <====== 11n D3.0 =======================
|
||||
BOOLEAN bOverlapScanning;
|
||||
#endif // DOT11N_DRAFT3 //
|
||||
|
||||
BOOLEAN bHTProtect;
|
||||
BOOLEAN bMIMOPSEnable;
|
||||
BOOLEAN bBADecline;
|
||||
@ -2308,10 +2264,6 @@ typedef struct _MAC_TABLE_ENTRY {
|
||||
UCHAR MmpsMode; // MIMO power save more.
|
||||
|
||||
HT_CAPABILITY_IE HTCapability;
|
||||
|
||||
#ifdef DOT11N_DRAFT3
|
||||
UCHAR BSS2040CoexistenceMgmtSupport;
|
||||
#endif // DOT11N_DRAFT3 //
|
||||
#endif // DOT11_N_SUPPORT //
|
||||
|
||||
BOOLEAN bAutoTxRateSwitch;
|
||||
@ -3629,46 +3581,6 @@ VOID SendPSMPAction(
|
||||
IN UCHAR Wcid,
|
||||
IN UCHAR Psmp);
|
||||
|
||||
|
||||
#ifdef DOT11N_DRAFT3
|
||||
VOID SendBSS2040CoexistMgmtAction(
|
||||
IN PRTMP_ADAPTER pAd,
|
||||
IN UCHAR Wcid,
|
||||
IN UCHAR apidx,
|
||||
IN UCHAR InfoReq);
|
||||
|
||||
VOID SendNotifyBWActionFrame(
|
||||
IN PRTMP_ADAPTER pAd,
|
||||
IN UCHAR Wcid,
|
||||
IN UCHAR apidx);
|
||||
|
||||
BOOLEAN ChannelSwitchSanityCheck(
|
||||
IN PRTMP_ADAPTER pAd,
|
||||
IN UCHAR Wcid,
|
||||
IN UCHAR NewChannel,
|
||||
IN UCHAR Secondary);
|
||||
|
||||
VOID ChannelSwitchAction(
|
||||
IN PRTMP_ADAPTER pAd,
|
||||
IN UCHAR Wcid,
|
||||
IN UCHAR Channel,
|
||||
IN UCHAR Secondary);
|
||||
|
||||
ULONG BuildIntolerantChannelRep(
|
||||
IN PRTMP_ADAPTER pAd,
|
||||
IN PUCHAR pDest);
|
||||
|
||||
VOID Update2040CoexistFrameAndNotify(
|
||||
IN PRTMP_ADAPTER pAd,
|
||||
IN UCHAR Wcid,
|
||||
IN BOOLEAN bAddIntolerantCha);
|
||||
|
||||
VOID Send2040CoexistAction(
|
||||
IN PRTMP_ADAPTER pAd,
|
||||
IN UCHAR Wcid,
|
||||
IN BOOLEAN bAddIntolerantCha);
|
||||
#endif // DOT11N_DRAFT3 //
|
||||
|
||||
VOID PeerRMAction(
|
||||
IN PRTMP_ADAPTER pAd,
|
||||
IN MLME_QUEUE_ELEM *Elem);
|
||||
@ -4350,30 +4262,6 @@ VOID BATableInsertEntry(
|
||||
IN UCHAR BAWinSize,
|
||||
IN UCHAR OriginatorStatus,
|
||||
IN BOOLEAN IsRecipient);
|
||||
|
||||
#ifdef DOT11N_DRAFT3
|
||||
VOID Bss2040CoexistTimeOut(
|
||||
IN PVOID SystemSpecific1,
|
||||
IN PVOID FunctionContext,
|
||||
IN PVOID SystemSpecific2,
|
||||
IN PVOID SystemSpecific3);
|
||||
|
||||
|
||||
VOID TriEventInit(
|
||||
IN PRTMP_ADAPTER pAd);
|
||||
|
||||
ULONG TriEventTableSetEntry(
|
||||
IN PRTMP_ADAPTER pAd,
|
||||
OUT TRIGGER_EVENT_TAB *Tab,
|
||||
IN PUCHAR pBssid,
|
||||
IN HT_CAPABILITY_IE *pHtCapability,
|
||||
IN UCHAR HtCapabilityLen,
|
||||
IN UCHAR RegClass,
|
||||
IN UCHAR ChannelNo);
|
||||
|
||||
VOID TriEventCounterMaintenance(
|
||||
IN PRTMP_ADAPTER pAd);
|
||||
#endif // DOT11N_DRAFT3 //
|
||||
#endif // DOT11_N_SUPPORT //
|
||||
|
||||
VOID BssTableSsidSort(
|
||||
@ -5563,13 +5451,6 @@ CHAR ConvertToRssi(
|
||||
IN CHAR Rssi,
|
||||
IN UCHAR RssiNumber);
|
||||
|
||||
|
||||
#ifdef DOT11N_DRAFT3
|
||||
VOID BuildEffectedChannelList(
|
||||
IN PRTMP_ADAPTER pAd);
|
||||
#endif // DOT11N_DRAFT3 //
|
||||
|
||||
|
||||
VOID APAsicEvaluateRxAnt(
|
||||
IN PRTMP_ADAPTER pAd);
|
||||
|
||||
|
@ -213,10 +213,6 @@
|
||||
#define fOP_STATUS_WAKEUP_NOW 0x00008000
|
||||
#define fOP_STATUS_ADVANCE_POWER_SAVE_PCIE_DEVICE 0x00020000
|
||||
|
||||
#ifdef DOT11N_DRAFT3
|
||||
#define fOP_STATUS_SCAN_2040 0x00040000
|
||||
#endif // DOT11N_DRAFT3 //
|
||||
|
||||
#define CCKSETPROTECT 0x1
|
||||
#define OFDMSETPROTECT 0x2
|
||||
#define MM20SETPROTECT 0x4
|
||||
@ -241,10 +237,6 @@
|
||||
#define fCLIENT_STATUS_MCSFEEDBACK_CAPABLE 0x00000400
|
||||
#define fCLIENT_STATUS_APSD_CAPABLE 0x00000800 /* UAPSD STATION */
|
||||
|
||||
#ifdef DOT11N_DRAFT3
|
||||
#define fCLIENT_STATUS_BSSCOEXIST_CAPABLE 0x00001000
|
||||
#endif // DOT11N_DRAFT3 //
|
||||
|
||||
#define fCLIENT_STATUS_RALINK_CHIPSET 0x00100000
|
||||
//
|
||||
// STA configuration flags
|
||||
|
@ -178,13 +178,6 @@ VOID MlmeCntlMachinePerformAction(
|
||||
pAd->bLedOnScanning = FALSE;
|
||||
RTMPSetLED(pAd, pAd->LedStatus);
|
||||
}
|
||||
#ifdef DOT11N_DRAFT3
|
||||
// AP sent a 2040Coexistence mgmt frame, then station perform a scan, and then send back the respone.
|
||||
if (pAd->CommonCfg.BSSCoexist2040.field.InfoReq == 1)
|
||||
{
|
||||
Update2040CoexistFrameAndNotify(pAd, BSSID_WCID, TRUE);
|
||||
}
|
||||
#endif // DOT11N_DRAFT3 //
|
||||
}
|
||||
break;
|
||||
|
||||
@ -1781,16 +1774,6 @@ VOID LinkUp(
|
||||
}
|
||||
|
||||
RTMP_CLEAR_FLAG(pAd, fRTMP_ADAPTER_BSS_SCAN_IN_PROGRESS);
|
||||
|
||||
#ifdef DOT11_N_SUPPORT
|
||||
#ifdef DOT11N_DRAFT3
|
||||
if ((pAd->CommonCfg.BACapability.field.b2040CoexistScanSup) && (pAd->CommonCfg.Channel <= 11))
|
||||
{
|
||||
OPSTATUS_SET_FLAG(pAd, fOP_STATUS_SCAN_2040);
|
||||
BuildEffectedChannelList(pAd);
|
||||
}
|
||||
#endif // DOT11N_DRAFT3 //
|
||||
#endif // DOT11_N_SUPPORT //
|
||||
}
|
||||
|
||||
/*
|
||||
@ -2048,18 +2031,6 @@ VOID LinkDown(
|
||||
pAd->CommonCfg.IOTestParm.bCurrentAtheros = FALSE;
|
||||
pAd->CommonCfg.IOTestParm.bNowAtherosBurstOn = FALSE;
|
||||
|
||||
#ifdef DOT11_N_SUPPORT
|
||||
#ifdef DOT11N_DRAFT3
|
||||
OPSTATUS_CLEAR_FLAG(pAd, fOP_STATUS_SCAN_2040);
|
||||
pAd->CommonCfg.BSSCoexist2040.word = 0;
|
||||
TriEventInit(pAd);
|
||||
for (i = 0; i < (pAd->ChannelListNum - 1); i++)
|
||||
{
|
||||
pAd->ChannelList[i].bEffectedChannel = FALSE;
|
||||
}
|
||||
#endif // DOT11N_DRAFT3 //
|
||||
#endif // DOT11_N_SUPPORT //
|
||||
|
||||
RTMP_IO_WRITE32(pAd, MAX_LEN_CFG, 0x1fff);
|
||||
RTMP_CLEAR_FLAG(pAd, fRTMP_ADAPTER_BSS_SCAN_IN_PROGRESS);
|
||||
|
||||
|
@ -634,16 +634,7 @@ VOID PeerBeaconAtScanAction(
|
||||
&CfParm, AtimWin, CapabilityInfo, SupRate, SupRateLen, ExtRate, ExtRateLen, &HtCapability,
|
||||
&AddHtInfo, HtCapabilityLen, AddHtInfoLen, NewExtChannelOffset, Channel, Rssi, TimeStamp, CkipFlag,
|
||||
&EdcaParm, &QosCapability, &QbssLoad, LenVIE, pVIE);
|
||||
#ifdef DOT11_N_SUPPORT
|
||||
#ifdef DOT11N_DRAFT3
|
||||
if (pAd->ChannelList[pAd->CommonCfg.ChannelListIdx].bEffectedChannel == TRUE)
|
||||
{
|
||||
UCHAR RegClass;
|
||||
PeerBeaconAndProbeRspSanity2(pAd, Elem->Msg, Elem->MsgLen, &RegClass);
|
||||
TriEventTableSetEntry(pAd, &pAd->CommonCfg.TriggerEventTab, Bssid, &HtCapability, HtCapabilityLen, RegClass, Channel);
|
||||
}
|
||||
#endif // DOT11N_DRAFT3 //
|
||||
#endif // DOT11_N_SUPPORT //
|
||||
|
||||
if (Idx != BSS_NOT_FOUND)
|
||||
{
|
||||
NdisMoveMemory(pAd->ScanTab.BssEntry[Idx].PTSF, &Elem->Msg[24], 4);
|
||||
@ -1621,88 +1612,6 @@ VOID EnqueueProbeRequest(
|
||||
|
||||
}
|
||||
|
||||
#ifdef DOT11_N_SUPPORT
|
||||
#ifdef DOT11N_DRAFT3
|
||||
VOID BuildEffectedChannelList(
|
||||
IN PRTMP_ADAPTER pAd)
|
||||
{
|
||||
UCHAR EChannel[11];
|
||||
UCHAR i, j, k;
|
||||
UCHAR UpperChannel = 0, LowerChannel = 0;
|
||||
|
||||
RTMPZeroMemory(EChannel, 11);
|
||||
i = 0;
|
||||
// Find upper channel and lower channel.
|
||||
if (pAd->CommonCfg.CentralChannel < pAd->CommonCfg.Channel)
|
||||
{
|
||||
UpperChannel = pAd->CommonCfg.Channel;
|
||||
LowerChannel = pAd->CommonCfg.CentralChannel;
|
||||
}
|
||||
else if (pAd->CommonCfg.CentralChannel > pAd->CommonCfg.Channel)
|
||||
{
|
||||
UpperChannel = pAd->CommonCfg.CentralChannel;
|
||||
LowerChannel = pAd->CommonCfg.Channel;
|
||||
}
|
||||
else
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
// Record channels that is below lower channel..
|
||||
if (LowerChannel > 1)
|
||||
{
|
||||
EChannel[0] = LowerChannel - 1;
|
||||
i = 1;
|
||||
if (LowerChannel > 2)
|
||||
{
|
||||
EChannel[1] = LowerChannel - 2;
|
||||
i = 2;
|
||||
if (LowerChannel > 3)
|
||||
{
|
||||
EChannel[2] = LowerChannel - 3;
|
||||
i = 3;
|
||||
}
|
||||
}
|
||||
}
|
||||
// Record channels that is between lower channel and upper channel.
|
||||
for (k = LowerChannel;k < UpperChannel;k++)
|
||||
{
|
||||
EChannel[i] = k;
|
||||
i++;
|
||||
}
|
||||
// Record channels that is above upper channel..
|
||||
if (LowerChannel < 11)
|
||||
{
|
||||
EChannel[i] = UpperChannel + 1;
|
||||
i++;
|
||||
if (LowerChannel < 10)
|
||||
{
|
||||
EChannel[i] = LowerChannel + 2;
|
||||
i++;
|
||||
if (LowerChannel < 9)
|
||||
{
|
||||
EChannel[i] = LowerChannel + 3;
|
||||
i++;
|
||||
}
|
||||
}
|
||||
}
|
||||
//
|
||||
for (j = 0;j < i;j++)
|
||||
{
|
||||
for (k = 0;k < pAd->ChannelListNum;k++)
|
||||
{
|
||||
if (pAd->ChannelList[k].Channel == EChannel[j])
|
||||
{
|
||||
pAd->ChannelList[k].bEffectedChannel = TRUE;
|
||||
DBGPRINT(RT_DEBUG_TRACE,(" EffectedChannel( =%d)\n", EChannel[j]));
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif // DOT11N_DRAFT3 //
|
||||
#endif // DOT11_N_SUPPORT //
|
||||
|
||||
BOOLEAN ScanRunning(
|
||||
IN PRTMP_ADAPTER pAd)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user