mirror of https://gitee.com/openkylin/linux.git
Staging: rt3070: remove dead QOS_DLS_SUPPORT code
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
parent
bbdf6e888d
commit
381116e06f
|
@ -72,9 +72,6 @@ VOID ActionStateMachineInit(
|
||||||
StateMachineSetAction(S, ACT_IDLE, MT2_PEER_QOS_CATE, (STATE_MACHINE_FUNC)PeerQOSAction);
|
StateMachineSetAction(S, ACT_IDLE, MT2_PEER_QOS_CATE, (STATE_MACHINE_FUNC)PeerQOSAction);
|
||||||
|
|
||||||
StateMachineSetAction(S, ACT_IDLE, MT2_PEER_DLS_CATE, (STATE_MACHINE_FUNC)ReservedAction);
|
StateMachineSetAction(S, ACT_IDLE, MT2_PEER_DLS_CATE, (STATE_MACHINE_FUNC)ReservedAction);
|
||||||
#ifdef QOS_DLS_SUPPORT
|
|
||||||
StateMachineSetAction(S, ACT_IDLE, MT2_PEER_DLS_CATE, (STATE_MACHINE_FUNC)PeerDLSAction);
|
|
||||||
#endif // QOS_DLS_SUPPORT //
|
|
||||||
|
|
||||||
#ifdef DOT11_N_SUPPORT
|
#ifdef DOT11_N_SUPPORT
|
||||||
StateMachineSetAction(S, ACT_IDLE, MT2_PEER_BA_CATE, (STATE_MACHINE_FUNC)PeerBAAction);
|
StateMachineSetAction(S, ACT_IDLE, MT2_PEER_BA_CATE, (STATE_MACHINE_FUNC)PeerBAAction);
|
||||||
|
@ -291,39 +288,6 @@ VOID PeerQOSAction(
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef QOS_DLS_SUPPORT
|
|
||||||
VOID PeerDLSAction(
|
|
||||||
IN PRTMP_ADAPTER pAd,
|
|
||||||
IN MLME_QUEUE_ELEM *Elem)
|
|
||||||
{
|
|
||||||
UCHAR Action = Elem->Msg[LENGTH_802_11+1];
|
|
||||||
|
|
||||||
switch(Action)
|
|
||||||
{
|
|
||||||
case ACTION_DLS_REQUEST:
|
|
||||||
#ifdef CONFIG_STA_SUPPORT
|
|
||||||
IF_DEV_CONFIG_OPMODE_ON_STA(pAd)
|
|
||||||
PeerDlsReqAction(pAd, Elem);
|
|
||||||
#endif // CONFIG_STA_SUPPORT //
|
|
||||||
break;
|
|
||||||
|
|
||||||
case ACTION_DLS_RESPONSE:
|
|
||||||
#ifdef CONFIG_STA_SUPPORT
|
|
||||||
IF_DEV_CONFIG_OPMODE_ON_STA(pAd)
|
|
||||||
PeerDlsRspAction(pAd, Elem);
|
|
||||||
#endif // CONFIG_STA_SUPPORT //
|
|
||||||
break;
|
|
||||||
|
|
||||||
case ACTION_DLS_TEARDOWN:
|
|
||||||
#ifdef CONFIG_STA_SUPPORT
|
|
||||||
IF_DEV_CONFIG_OPMODE_ON_STA(pAd)
|
|
||||||
PeerDlsTearDownAction(pAd, Elem);
|
|
||||||
#endif // CONFIG_STA_SUPPORT //
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif // QOS_DLS_SUPPORT //
|
|
||||||
|
|
||||||
#ifdef DOT11_N_SUPPORT
|
#ifdef DOT11_N_SUPPORT
|
||||||
VOID PeerBAAction(
|
VOID PeerBAAction(
|
||||||
IN PRTMP_ADAPTER pAd,
|
IN PRTMP_ADAPTER pAd,
|
||||||
|
|
|
@ -1249,15 +1249,6 @@ VOID RTMPWriteTxWI_Data(
|
||||||
pTxWI->ACK = TX_BLK_TEST_FLAG(pTxBlk, fTX_bAckRequired);
|
pTxWI->ACK = TX_BLK_TEST_FLAG(pTxBlk, fTX_bAckRequired);
|
||||||
pTxWI->txop = pTxBlk->FrameGap;
|
pTxWI->txop = pTxBlk->FrameGap;
|
||||||
|
|
||||||
#ifdef CONFIG_STA_SUPPORT
|
|
||||||
#ifdef QOS_DLS_SUPPORT
|
|
||||||
if (pMacEntry &&
|
|
||||||
(pAd->StaCfg.BssType == BSS_INFRA) &&
|
|
||||||
(pMacEntry->ValidAsDls == TRUE))
|
|
||||||
pTxWI->WirelessCliID = BSSID_WCID;
|
|
||||||
else
|
|
||||||
#endif // QOS_DLS_SUPPORT //
|
|
||||||
#endif // CONFIG_STA_SUPPORT //
|
|
||||||
pTxWI->WirelessCliID = pTxBlk->Wcid;
|
pTxWI->WirelessCliID = pTxBlk->Wcid;
|
||||||
|
|
||||||
pTxWI->MPDUtotalByteCount = pTxBlk->MpduHeaderLen + pTxBlk->SrcBufLen;
|
pTxWI->MPDUtotalByteCount = pTxBlk->MpduHeaderLen + pTxBlk->SrcBufLen;
|
||||||
|
@ -1876,11 +1867,6 @@ MAC_TABLE_ENTRY *MacTableInsertEntry(
|
||||||
(pAd->MacTab.Content[i].ValidAsWDS == FALSE) &&
|
(pAd->MacTab.Content[i].ValidAsWDS == FALSE) &&
|
||||||
(pAd->MacTab.Content[i].ValidAsApCli== FALSE) &&
|
(pAd->MacTab.Content[i].ValidAsApCli== FALSE) &&
|
||||||
(pAd->MacTab.Content[i].ValidAsMesh == FALSE)
|
(pAd->MacTab.Content[i].ValidAsMesh == FALSE)
|
||||||
#ifdef CONFIG_STA_SUPPORT
|
|
||||||
#ifdef QOS_DLS_SUPPORT
|
|
||||||
&& (pAd->MacTab.Content[i].ValidAsDls == FALSE)
|
|
||||||
#endif // QOS_DLS_SUPPORT //
|
|
||||||
#endif // CONFIG_STA_SUPPORT //
|
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
pEntry = &pAd->MacTab.Content[i];
|
pEntry = &pAd->MacTab.Content[i];
|
||||||
|
@ -1892,20 +1878,6 @@ MAC_TABLE_ENTRY *MacTableInsertEntry(
|
||||||
pEntry->PairwiseKey.KeyLen = 0;
|
pEntry->PairwiseKey.KeyLen = 0;
|
||||||
pEntry->PairwiseKey.CipherAlg = CIPHER_NONE;
|
pEntry->PairwiseKey.CipherAlg = CIPHER_NONE;
|
||||||
}
|
}
|
||||||
#ifdef CONFIG_STA_SUPPORT
|
|
||||||
#ifdef QOS_DLS_SUPPORT
|
|
||||||
if (apidx >= MIN_NET_DEVICE_FOR_DLS)
|
|
||||||
{
|
|
||||||
pEntry->ValidAsCLI = FALSE;
|
|
||||||
pEntry->ValidAsWDS = FALSE;
|
|
||||||
pEntry->ValidAsApCli = FALSE;
|
|
||||||
pEntry->ValidAsMesh = FALSE;
|
|
||||||
pEntry->ValidAsDls = TRUE;
|
|
||||||
pEntry->isCached = FALSE;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
#endif // QOS_DLS_SUPPORT //
|
|
||||||
#endif // CONFIG_STA_SUPPORT //
|
|
||||||
{
|
{
|
||||||
|
|
||||||
#ifdef CONFIG_STA_SUPPORT
|
#ifdef CONFIG_STA_SUPPORT
|
||||||
|
@ -1934,12 +1906,6 @@ MAC_TABLE_ENTRY *MacTableInsertEntry(
|
||||||
pEntry->apidx = (apidx - MIN_NET_DEVICE_FOR_APCLI);
|
pEntry->apidx = (apidx - MIN_NET_DEVICE_FOR_APCLI);
|
||||||
else if (pEntry->ValidAsWDS)
|
else if (pEntry->ValidAsWDS)
|
||||||
pEntry->apidx = (apidx - MIN_NET_DEVICE_FOR_WDS);
|
pEntry->apidx = (apidx - MIN_NET_DEVICE_FOR_WDS);
|
||||||
#ifdef CONFIG_STA_SUPPORT
|
|
||||||
#ifdef QOS_DLS_SUPPORT
|
|
||||||
else if (pEntry->ValidAsDls)
|
|
||||||
pEntry->apidx = (apidx - MIN_NET_DEVICE_FOR_DLS);
|
|
||||||
#endif // QOS_DLS_SUPPORT //
|
|
||||||
#endif // CONFIG_STA_SUPPORT //
|
|
||||||
else
|
else
|
||||||
pEntry->apidx = apidx;
|
pEntry->apidx = apidx;
|
||||||
|
|
||||||
|
@ -1958,13 +1924,6 @@ MAC_TABLE_ENTRY *MacTableInsertEntry(
|
||||||
pEntry->GTKState = REKEY_NEGOTIATING;
|
pEntry->GTKState = REKEY_NEGOTIATING;
|
||||||
pEntry->PairwiseKey.KeyLen = 0;
|
pEntry->PairwiseKey.KeyLen = 0;
|
||||||
pEntry->PairwiseKey.CipherAlg = CIPHER_NONE;
|
pEntry->PairwiseKey.CipherAlg = CIPHER_NONE;
|
||||||
#ifdef CONFIG_STA_SUPPORT
|
|
||||||
#ifdef QOS_DLS_SUPPORT
|
|
||||||
if (pEntry->ValidAsDls == TRUE)
|
|
||||||
pEntry->PortSecured = WPA_802_1X_PORT_SECURED;
|
|
||||||
else
|
|
||||||
#endif //QOS_DLS_SUPPORT
|
|
||||||
#endif // CONFIG_STA_SUPPORT //
|
|
||||||
pEntry->PortSecured = WPA_802_1X_PORT_NOT_SECURED;
|
pEntry->PortSecured = WPA_802_1X_PORT_NOT_SECURED;
|
||||||
pEntry->PMKID_CacheIdx = ENTRY_NOT_FOUND;
|
pEntry->PMKID_CacheIdx = ENTRY_NOT_FOUND;
|
||||||
COPY_MAC_ADDR(pEntry->Addr, pAddr);
|
COPY_MAC_ADDR(pEntry->Addr, pAddr);
|
||||||
|
@ -2039,11 +1998,6 @@ BOOLEAN MacTableDeleteEntry(
|
||||||
pEntry = &pAd->MacTab.Content[wcid];
|
pEntry = &pAd->MacTab.Content[wcid];
|
||||||
|
|
||||||
if (pEntry && (pEntry->ValidAsCLI || pEntry->ValidAsApCli || pEntry->ValidAsWDS || pEntry->ValidAsMesh
|
if (pEntry && (pEntry->ValidAsCLI || pEntry->ValidAsApCli || pEntry->ValidAsWDS || pEntry->ValidAsMesh
|
||||||
#ifdef CONFIG_STA_SUPPORT
|
|
||||||
#ifdef QOS_DLS_SUPPORT
|
|
||||||
|| pEntry->ValidAsDls
|
|
||||||
#endif // QOS_DLS_SUPPORT //
|
|
||||||
#endif // CONFIG_STA_SUPPORT //
|
|
||||||
))
|
))
|
||||||
{
|
{
|
||||||
if (MAC_ADDR_EQUAL(pEntry->Addr, pAddr))
|
if (MAC_ADDR_EQUAL(pEntry->Addr, pAddr))
|
||||||
|
|
|
@ -1715,11 +1715,6 @@ VOID RTMPAddWcidAttributeEntry(
|
||||||
Wcid = pEntry->Aid;
|
Wcid = pEntry->Aid;
|
||||||
else if (pEntry && INFRA_ON(pAd))
|
else if (pEntry && INFRA_ON(pAd))
|
||||||
{
|
{
|
||||||
#ifdef QOS_DLS_SUPPORT
|
|
||||||
if (pEntry->ValidAsDls == TRUE)
|
|
||||||
Wcid = pEntry->Aid;
|
|
||||||
else
|
|
||||||
#endif // QOS_DLS_SUPPORT //
|
|
||||||
Wcid = BSSID_WCID;
|
Wcid = BSSID_WCID;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -1736,14 +1731,6 @@ VOID RTMPAddWcidAttributeEntry(
|
||||||
{
|
{
|
||||||
if (pEntry && pEntry->ValidAsMesh)
|
if (pEntry && pEntry->ValidAsMesh)
|
||||||
WCIDAttri = (CipherAlg<<1) | PAIRWISEKEYTABLE;
|
WCIDAttri = (CipherAlg<<1) | PAIRWISEKEYTABLE;
|
||||||
#ifdef QOS_DLS_SUPPORT
|
|
||||||
else if ((pEntry) && (pEntry->ValidAsDls) &&
|
|
||||||
((CipherAlg == CIPHER_TKIP) ||
|
|
||||||
(CipherAlg == CIPHER_TKIP_NO_MIC) ||
|
|
||||||
(CipherAlg == CIPHER_AES) ||
|
|
||||||
(CipherAlg == CIPHER_NONE)))
|
|
||||||
WCIDAttri = (CipherAlg<<1) | PAIRWISEKEYTABLE;
|
|
||||||
#endif // QOS_DLS_SUPPORT //
|
|
||||||
else
|
else
|
||||||
WCIDAttri = (CipherAlg<<1) | SHAREDKEYTABLE;
|
WCIDAttri = (CipherAlg<<1) | SHAREDKEYTABLE;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1380,290 +1380,3 @@ BOOLEAN PeerWpaMessageSanity(
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_STA_SUPPORT
|
|
||||||
#ifdef QOS_DLS_SUPPORT
|
|
||||||
BOOLEAN MlmeDlsReqSanity(
|
|
||||||
IN PRTMP_ADAPTER pAd,
|
|
||||||
IN VOID *Msg,
|
|
||||||
IN ULONG MsgLen,
|
|
||||||
OUT PRT_802_11_DLS *pDLS,
|
|
||||||
OUT PUSHORT pReason)
|
|
||||||
{
|
|
||||||
MLME_DLS_REQ_STRUCT *pInfo;
|
|
||||||
|
|
||||||
pInfo = (MLME_DLS_REQ_STRUCT *)Msg;
|
|
||||||
|
|
||||||
*pDLS = pInfo->pDLS;
|
|
||||||
*pReason = pInfo->Reason;
|
|
||||||
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
#endif // QOS_DLS_SUPPORT //
|
|
||||||
#endif // CONFIG_STA_SUPPORT //
|
|
||||||
|
|
||||||
#ifdef QOS_DLS_SUPPORT
|
|
||||||
BOOLEAN PeerDlsReqSanity(
|
|
||||||
IN PRTMP_ADAPTER pAd,
|
|
||||||
IN VOID *Msg,
|
|
||||||
IN ULONG MsgLen,
|
|
||||||
OUT PUCHAR pDA,
|
|
||||||
OUT PUCHAR pSA,
|
|
||||||
OUT USHORT *pCapabilityInfo,
|
|
||||||
OUT USHORT *pDlsTimeout,
|
|
||||||
OUT UCHAR *pRatesLen,
|
|
||||||
OUT UCHAR Rates[],
|
|
||||||
OUT UCHAR *pHtCapabilityLen,
|
|
||||||
OUT HT_CAPABILITY_IE *pHtCapability)
|
|
||||||
{
|
|
||||||
CHAR *Ptr;
|
|
||||||
PFRAME_802_11 Fr = (PFRAME_802_11)Msg;
|
|
||||||
PEID_STRUCT eid_ptr;
|
|
||||||
|
|
||||||
// to prevent caller from using garbage output value
|
|
||||||
*pCapabilityInfo = 0;
|
|
||||||
*pDlsTimeout = 0;
|
|
||||||
*pHtCapabilityLen = 0;
|
|
||||||
|
|
||||||
Ptr = Fr->Octet;
|
|
||||||
|
|
||||||
// offset to destination MAC address (Category and Action field)
|
|
||||||
Ptr += 2;
|
|
||||||
|
|
||||||
// get DA from payload and advance the pointer
|
|
||||||
NdisMoveMemory(pDA, Ptr, MAC_ADDR_LEN);
|
|
||||||
Ptr += MAC_ADDR_LEN;
|
|
||||||
|
|
||||||
// get SA from payload and advance the pointer
|
|
||||||
NdisMoveMemory(pSA, Ptr, MAC_ADDR_LEN);
|
|
||||||
Ptr += MAC_ADDR_LEN;
|
|
||||||
|
|
||||||
// get capability info from payload and advance the pointer
|
|
||||||
NdisMoveMemory(pCapabilityInfo, Ptr, 2);
|
|
||||||
Ptr += 2;
|
|
||||||
|
|
||||||
// get capability info from payload and advance the pointer
|
|
||||||
NdisMoveMemory(pDlsTimeout, Ptr, 2);
|
|
||||||
Ptr += 2;
|
|
||||||
|
|
||||||
// Category and Action field + DA + SA + capability + Timeout
|
|
||||||
eid_ptr = (PEID_STRUCT) &Fr->Octet[18];
|
|
||||||
|
|
||||||
while (((UCHAR*)eid_ptr + eid_ptr->Len + 1) < ((UCHAR*)Fr + MsgLen))
|
|
||||||
{
|
|
||||||
switch(eid_ptr->Eid)
|
|
||||||
{
|
|
||||||
case IE_SUPP_RATES:
|
|
||||||
if ((eid_ptr->Len <= MAX_LEN_OF_SUPPORTED_RATES) && (eid_ptr->Len > 0))
|
|
||||||
{
|
|
||||||
NdisMoveMemory(Rates, eid_ptr->Octet, eid_ptr->Len);
|
|
||||||
DBGPRINT(RT_DEBUG_TRACE, ("PeerDlsReqSanity - IE_SUPP_RATES., Len=%d. Rates[0]=%x\n",eid_ptr->Len, Rates[0]));
|
|
||||||
DBGPRINT(RT_DEBUG_TRACE, ("Rates[1]=%x %x %x %x %x %x %x\n", Rates[1], Rates[2], Rates[3], Rates[4], Rates[5], Rates[6], Rates[7]));
|
|
||||||
*pRatesLen = eid_ptr->Len;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
*pRatesLen = 8;
|
|
||||||
Rates[0] = 0x82;
|
|
||||||
Rates[1] = 0x84;
|
|
||||||
Rates[2] = 0x8b;
|
|
||||||
Rates[3] = 0x96;
|
|
||||||
Rates[4] = 0x12;
|
|
||||||
Rates[5] = 0x24;
|
|
||||||
Rates[6] = 0x48;
|
|
||||||
Rates[7] = 0x6c;
|
|
||||||
DBGPRINT(RT_DEBUG_TRACE, ("PeerDlsReqSanity - wrong IE_SUPP_RATES., Len=%d\n",eid_ptr->Len));
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case IE_EXT_SUPP_RATES:
|
|
||||||
if (eid_ptr->Len + *pRatesLen <= MAX_LEN_OF_SUPPORTED_RATES)
|
|
||||||
{
|
|
||||||
NdisMoveMemory(&Rates[*pRatesLen], eid_ptr->Octet, eid_ptr->Len);
|
|
||||||
*pRatesLen = (*pRatesLen) + eid_ptr->Len;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
NdisMoveMemory(&Rates[*pRatesLen], eid_ptr->Octet, MAX_LEN_OF_SUPPORTED_RATES - (*pRatesLen));
|
|
||||||
*pRatesLen = MAX_LEN_OF_SUPPORTED_RATES;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case IE_HT_CAP:
|
|
||||||
if (eid_ptr->Len >= sizeof(HT_CAPABILITY_IE))
|
|
||||||
{
|
|
||||||
NdisMoveMemory(pHtCapability, eid_ptr->Octet, sizeof(HT_CAPABILITY_IE));
|
|
||||||
|
|
||||||
*(USHORT *)(&pHtCapability->HtCapInfo) = cpu2le16(*(USHORT *)(&pHtCapability->HtCapInfo));
|
|
||||||
*(USHORT *)(&pHtCapability->ExtHtCapInfo) = cpu2le16(*(USHORT *)(&pHtCapability->ExtHtCapInfo));
|
|
||||||
*pHtCapabilityLen = sizeof(HT_CAPABILITY_IE);
|
|
||||||
|
|
||||||
DBGPRINT(RT_DEBUG_TRACE, ("PeerDlsReqSanity - IE_HT_CAP\n"));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
DBGPRINT(RT_DEBUG_TRACE, ("PeerDlsReqSanity - wrong IE_HT_CAP.eid_ptr->Len = %d\n", eid_ptr->Len));
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
eid_ptr = (PEID_STRUCT)((UCHAR*)eid_ptr + 2 + eid_ptr->Len);
|
|
||||||
}
|
|
||||||
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
BOOLEAN PeerDlsRspSanity(
|
|
||||||
IN PRTMP_ADAPTER pAd,
|
|
||||||
IN VOID *Msg,
|
|
||||||
IN ULONG MsgLen,
|
|
||||||
OUT PUCHAR pDA,
|
|
||||||
OUT PUCHAR pSA,
|
|
||||||
OUT USHORT *pCapabilityInfo,
|
|
||||||
OUT USHORT *pStatus,
|
|
||||||
OUT UCHAR *pRatesLen,
|
|
||||||
OUT UCHAR Rates[],
|
|
||||||
OUT UCHAR *pHtCapabilityLen,
|
|
||||||
OUT HT_CAPABILITY_IE *pHtCapability)
|
|
||||||
{
|
|
||||||
CHAR *Ptr;
|
|
||||||
PFRAME_802_11 Fr = (PFRAME_802_11)Msg;
|
|
||||||
PEID_STRUCT eid_ptr;
|
|
||||||
|
|
||||||
// to prevent caller from using garbage output value
|
|
||||||
*pStatus = 0;
|
|
||||||
*pCapabilityInfo = 0;
|
|
||||||
*pHtCapabilityLen = 0;
|
|
||||||
|
|
||||||
Ptr = Fr->Octet;
|
|
||||||
|
|
||||||
// offset to destination MAC address (Category and Action field)
|
|
||||||
Ptr += 2;
|
|
||||||
|
|
||||||
// get status code from payload and advance the pointer
|
|
||||||
NdisMoveMemory(pStatus, Ptr, 2);
|
|
||||||
Ptr += 2;
|
|
||||||
|
|
||||||
// get DA from payload and advance the pointer
|
|
||||||
NdisMoveMemory(pDA, Ptr, MAC_ADDR_LEN);
|
|
||||||
Ptr += MAC_ADDR_LEN;
|
|
||||||
|
|
||||||
// get SA from payload and advance the pointer
|
|
||||||
NdisMoveMemory(pSA, Ptr, MAC_ADDR_LEN);
|
|
||||||
Ptr += MAC_ADDR_LEN;
|
|
||||||
|
|
||||||
if (pStatus == 0)
|
|
||||||
{
|
|
||||||
// get capability info from payload and advance the pointer
|
|
||||||
NdisMoveMemory(pCapabilityInfo, Ptr, 2);
|
|
||||||
Ptr += 2;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Category and Action field + status code + DA + SA + capability
|
|
||||||
eid_ptr = (PEID_STRUCT) &Fr->Octet[18];
|
|
||||||
|
|
||||||
while (((UCHAR*)eid_ptr + eid_ptr->Len + 1) < ((UCHAR*)Fr + MsgLen))
|
|
||||||
{
|
|
||||||
switch(eid_ptr->Eid)
|
|
||||||
{
|
|
||||||
case IE_SUPP_RATES:
|
|
||||||
if ((eid_ptr->Len <= MAX_LEN_OF_SUPPORTED_RATES) && (eid_ptr->Len > 0))
|
|
||||||
{
|
|
||||||
NdisMoveMemory(Rates, eid_ptr->Octet, eid_ptr->Len);
|
|
||||||
DBGPRINT(RT_DEBUG_TRACE, ("PeerDlsRspSanity - IE_SUPP_RATES., Len=%d. Rates[0]=%x\n",eid_ptr->Len, Rates[0]));
|
|
||||||
DBGPRINT(RT_DEBUG_TRACE, ("Rates[1]=%x %x %x %x %x %x %x\n", Rates[1], Rates[2], Rates[3], Rates[4], Rates[5], Rates[6], Rates[7]));
|
|
||||||
*pRatesLen = eid_ptr->Len;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
*pRatesLen = 8;
|
|
||||||
Rates[0] = 0x82;
|
|
||||||
Rates[1] = 0x84;
|
|
||||||
Rates[2] = 0x8b;
|
|
||||||
Rates[3] = 0x96;
|
|
||||||
Rates[4] = 0x12;
|
|
||||||
Rates[5] = 0x24;
|
|
||||||
Rates[6] = 0x48;
|
|
||||||
Rates[7] = 0x6c;
|
|
||||||
DBGPRINT(RT_DEBUG_TRACE, ("PeerDlsRspSanity - wrong IE_SUPP_RATES., Len=%d\n",eid_ptr->Len));
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case IE_EXT_SUPP_RATES:
|
|
||||||
if (eid_ptr->Len + *pRatesLen <= MAX_LEN_OF_SUPPORTED_RATES)
|
|
||||||
{
|
|
||||||
NdisMoveMemory(&Rates[*pRatesLen], eid_ptr->Octet, eid_ptr->Len);
|
|
||||||
*pRatesLen = (*pRatesLen) + eid_ptr->Len;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
NdisMoveMemory(&Rates[*pRatesLen], eid_ptr->Octet, MAX_LEN_OF_SUPPORTED_RATES - (*pRatesLen));
|
|
||||||
*pRatesLen = MAX_LEN_OF_SUPPORTED_RATES;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case IE_HT_CAP:
|
|
||||||
if (eid_ptr->Len >= sizeof(HT_CAPABILITY_IE))
|
|
||||||
{
|
|
||||||
NdisMoveMemory(pHtCapability, eid_ptr->Octet, sizeof(HT_CAPABILITY_IE));
|
|
||||||
|
|
||||||
*(USHORT *)(&pHtCapability->HtCapInfo) = cpu2le16(*(USHORT *)(&pHtCapability->HtCapInfo));
|
|
||||||
*(USHORT *)(&pHtCapability->ExtHtCapInfo) = cpu2le16(*(USHORT *)(&pHtCapability->ExtHtCapInfo));
|
|
||||||
*pHtCapabilityLen = sizeof(HT_CAPABILITY_IE);
|
|
||||||
|
|
||||||
DBGPRINT(RT_DEBUG_TRACE, ("PeerDlsRspSanity - IE_HT_CAP\n"));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
DBGPRINT(RT_DEBUG_TRACE, ("PeerDlsRspSanity - wrong IE_HT_CAP.eid_ptr->Len = %d\n", eid_ptr->Len));
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
eid_ptr = (PEID_STRUCT)((UCHAR*)eid_ptr + 2 + eid_ptr->Len);
|
|
||||||
}
|
|
||||||
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
BOOLEAN PeerDlsTearDownSanity(
|
|
||||||
IN PRTMP_ADAPTER pAd,
|
|
||||||
IN VOID *Msg,
|
|
||||||
IN ULONG MsgLen,
|
|
||||||
OUT PUCHAR pDA,
|
|
||||||
OUT PUCHAR pSA,
|
|
||||||
OUT USHORT *pReason)
|
|
||||||
{
|
|
||||||
CHAR *Ptr;
|
|
||||||
PFRAME_802_11 Fr = (PFRAME_802_11)Msg;
|
|
||||||
|
|
||||||
// to prevent caller from using garbage output value
|
|
||||||
*pReason = 0;
|
|
||||||
|
|
||||||
Ptr = Fr->Octet;
|
|
||||||
|
|
||||||
// offset to destination MAC address (Category and Action field)
|
|
||||||
Ptr += 2;
|
|
||||||
|
|
||||||
// get DA from payload and advance the pointer
|
|
||||||
NdisMoveMemory(pDA, Ptr, MAC_ADDR_LEN);
|
|
||||||
Ptr += MAC_ADDR_LEN;
|
|
||||||
|
|
||||||
// get SA from payload and advance the pointer
|
|
||||||
NdisMoveMemory(pSA, Ptr, MAC_ADDR_LEN);
|
|
||||||
Ptr += MAC_ADDR_LEN;
|
|
||||||
|
|
||||||
// get reason code from payload and advance the pointer
|
|
||||||
NdisMoveMemory(pReason, Ptr, 2);
|
|
||||||
Ptr += 2;
|
|
||||||
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
#endif // QOS_DLS_SUPPORT //
|
|
||||||
|
|
||||||
|
|
|
@ -511,11 +511,6 @@ NDIS_STATUS MlmeInit(
|
||||||
WpaPskStateMachineInit(pAd, &pAd->Mlme.WpaPskMachine, pAd->Mlme.WpaPskFunc);
|
WpaPskStateMachineInit(pAd, &pAd->Mlme.WpaPskMachine, pAd->Mlme.WpaPskFunc);
|
||||||
AironetStateMachineInit(pAd, &pAd->Mlme.AironetMachine, pAd->Mlme.AironetFunc);
|
AironetStateMachineInit(pAd, &pAd->Mlme.AironetMachine, pAd->Mlme.AironetFunc);
|
||||||
|
|
||||||
#ifdef QOS_DLS_SUPPORT
|
|
||||||
DlsStateMachineInit(pAd, &pAd->Mlme.DlsMachine, pAd->Mlme.DlsFunc);
|
|
||||||
#endif // QOS_DLS_SUPPORT //
|
|
||||||
|
|
||||||
|
|
||||||
// Since we are using switch/case to implement it, the init is different from the above
|
// Since we are using switch/case to implement it, the init is different from the above
|
||||||
// state machine init
|
// state machine init
|
||||||
MlmeCntlInit(pAd, &pAd->Mlme.CntlMachine, NULL);
|
MlmeCntlInit(pAd, &pAd->Mlme.CntlMachine, NULL);
|
||||||
|
@ -635,12 +630,6 @@ VOID MlmeHandler(
|
||||||
case AIRONET_STATE_MACHINE:
|
case AIRONET_STATE_MACHINE:
|
||||||
StateMachinePerformAction(pAd, &pAd->Mlme.AironetMachine, Elem);
|
StateMachinePerformAction(pAd, &pAd->Mlme.AironetMachine, Elem);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
#ifdef QOS_DLS_SUPPORT
|
|
||||||
case DLS_STATE_MACHINE:
|
|
||||||
StateMachinePerformAction(pAd, &pAd->Mlme.DlsMachine, Elem);
|
|
||||||
break;
|
|
||||||
#endif // QOS_DLS_SUPPORT //
|
|
||||||
#endif // CONFIG_STA_SUPPORT //
|
#endif // CONFIG_STA_SUPPORT //
|
||||||
|
|
||||||
case ACTION_STATE_MACHINE:
|
case ACTION_STATE_MACHINE:
|
||||||
|
@ -702,9 +691,6 @@ VOID MlmeHalt(
|
||||||
#ifdef CONFIG_STA_SUPPORT
|
#ifdef CONFIG_STA_SUPPORT
|
||||||
IF_DEV_CONFIG_OPMODE_ON_STA(pAd)
|
IF_DEV_CONFIG_OPMODE_ON_STA(pAd)
|
||||||
{
|
{
|
||||||
#ifdef QOS_DLS_SUPPORT
|
|
||||||
UCHAR i;
|
|
||||||
#endif // QOS_DLS_SUPPORT //
|
|
||||||
// Cancel pending timers
|
// Cancel pending timers
|
||||||
RTMPCancelTimer(&pAd->MlmeAux.AssocTimer, &Cancelled);
|
RTMPCancelTimer(&pAd->MlmeAux.AssocTimer, &Cancelled);
|
||||||
RTMPCancelTimer(&pAd->MlmeAux.ReassocTimer, &Cancelled);
|
RTMPCancelTimer(&pAd->MlmeAux.ReassocTimer, &Cancelled);
|
||||||
|
@ -712,13 +698,6 @@ VOID MlmeHalt(
|
||||||
RTMPCancelTimer(&pAd->MlmeAux.AuthTimer, &Cancelled);
|
RTMPCancelTimer(&pAd->MlmeAux.AuthTimer, &Cancelled);
|
||||||
RTMPCancelTimer(&pAd->MlmeAux.BeaconTimer, &Cancelled);
|
RTMPCancelTimer(&pAd->MlmeAux.BeaconTimer, &Cancelled);
|
||||||
RTMPCancelTimer(&pAd->MlmeAux.ScanTimer, &Cancelled);
|
RTMPCancelTimer(&pAd->MlmeAux.ScanTimer, &Cancelled);
|
||||||
|
|
||||||
#ifdef QOS_DLS_SUPPORT
|
|
||||||
for (i=0; i<MAX_NUM_OF_DLS_ENTRY; i++)
|
|
||||||
{
|
|
||||||
RTMPCancelTimer(&pAd->StaCfg.DLSEntry[i].Timer, &Cancelled);
|
|
||||||
}
|
|
||||||
#endif // QOS_DLS_SUPPORT //
|
|
||||||
}
|
}
|
||||||
#endif // CONFIG_STA_SUPPORT //
|
#endif // CONFIG_STA_SUPPORT //
|
||||||
|
|
||||||
|
@ -1048,11 +1027,6 @@ VOID STAMlmePeriodicExec(
|
||||||
|
|
||||||
if (INFRA_ON(pAd))
|
if (INFRA_ON(pAd))
|
||||||
{
|
{
|
||||||
#ifdef QOS_DLS_SUPPORT
|
|
||||||
// Check DLS time out, then tear down those session
|
|
||||||
RTMPCheckDLSTimeOut(pAd);
|
|
||||||
#endif // QOS_DLS_SUPPORT //
|
|
||||||
|
|
||||||
// Is PSM bit consistent with user power management policy?
|
// Is PSM bit consistent with user power management policy?
|
||||||
// This is the only place that will set PSM bit ON.
|
// This is the only place that will set PSM bit ON.
|
||||||
if (!OPSTATUS_TEST_FLAG(pAd, fOP_STATUS_DOZE))
|
if (!OPSTATUS_TEST_FLAG(pAd, fOP_STATUS_DOZE))
|
||||||
|
@ -4896,9 +4870,6 @@ VOID MlmeRestartStateMachine(
|
||||||
#ifdef CONFIG_STA_SUPPORT
|
#ifdef CONFIG_STA_SUPPORT
|
||||||
IF_DEV_CONFIG_OPMODE_ON_STA(pAd)
|
IF_DEV_CONFIG_OPMODE_ON_STA(pAd)
|
||||||
{
|
{
|
||||||
#ifdef QOS_DLS_SUPPORT
|
|
||||||
UCHAR i;
|
|
||||||
#endif // QOS_DLS_SUPPORT //
|
|
||||||
// Cancel all timer events
|
// Cancel all timer events
|
||||||
// Be careful to cancel new added timer
|
// Be careful to cancel new added timer
|
||||||
RTMPCancelTimer(&pAd->MlmeAux.AssocTimer, &Cancelled);
|
RTMPCancelTimer(&pAd->MlmeAux.AssocTimer, &Cancelled);
|
||||||
|
@ -4907,13 +4878,6 @@ VOID MlmeRestartStateMachine(
|
||||||
RTMPCancelTimer(&pAd->MlmeAux.AuthTimer, &Cancelled);
|
RTMPCancelTimer(&pAd->MlmeAux.AuthTimer, &Cancelled);
|
||||||
RTMPCancelTimer(&pAd->MlmeAux.BeaconTimer, &Cancelled);
|
RTMPCancelTimer(&pAd->MlmeAux.BeaconTimer, &Cancelled);
|
||||||
RTMPCancelTimer(&pAd->MlmeAux.ScanTimer, &Cancelled);
|
RTMPCancelTimer(&pAd->MlmeAux.ScanTimer, &Cancelled);
|
||||||
|
|
||||||
#ifdef QOS_DLS_SUPPORT
|
|
||||||
for (i=0; i<MAX_NUM_OF_DLS_ENTRY; i++)
|
|
||||||
{
|
|
||||||
RTMPCancelTimer(&pAd->StaCfg.DLSEntry[i].Timer, &Cancelled);
|
|
||||||
}
|
|
||||||
#endif // QOS_DLS_SUPPORT //
|
|
||||||
}
|
}
|
||||||
#endif // CONFIG_STA_SUPPORT //
|
#endif // CONFIG_STA_SUPPORT //
|
||||||
|
|
||||||
|
@ -4934,9 +4898,6 @@ VOID MlmeRestartStateMachine(
|
||||||
pAd->Mlme.AuthRspMachine.CurrState = AUTH_RSP_IDLE;
|
pAd->Mlme.AuthRspMachine.CurrState = AUTH_RSP_IDLE;
|
||||||
pAd->Mlme.SyncMachine.CurrState = SYNC_IDLE;
|
pAd->Mlme.SyncMachine.CurrState = SYNC_IDLE;
|
||||||
pAd->Mlme.ActMachine.CurrState = ACT_IDLE;
|
pAd->Mlme.ActMachine.CurrState = ACT_IDLE;
|
||||||
#ifdef QOS_DLS_SUPPORT
|
|
||||||
pAd->Mlme.DlsMachine.CurrState = DLS_IDLE;
|
|
||||||
#endif // QOS_DLS_SUPPORT //
|
|
||||||
}
|
}
|
||||||
#endif // CONFIG_STA_SUPPORT //
|
#endif // CONFIG_STA_SUPPORT //
|
||||||
|
|
||||||
|
|
|
@ -1673,15 +1673,6 @@ VOID CMDHandler(
|
||||||
|
|
||||||
pEntry = (PMAC_TABLE_ENTRY)(pData);
|
pEntry = (PMAC_TABLE_ENTRY)(pData);
|
||||||
|
|
||||||
#ifdef CONFIG_STA_SUPPORT
|
|
||||||
#ifdef QOS_DLS_SUPPORT
|
|
||||||
KeyIdx = 0;
|
|
||||||
CipherAlg = pEntry->PairwiseKey.CipherAlg;
|
|
||||||
ApIdx = BSS0;
|
|
||||||
#endif // QOS_DLS_SUPPORT //
|
|
||||||
#endif // CONFIG_STA_SUPPORT //
|
|
||||||
|
|
||||||
|
|
||||||
RTMPAddWcidAttributeEntry(
|
RTMPAddWcidAttributeEntry(
|
||||||
pAd,
|
pAd,
|
||||||
ApIdx,
|
ApIdx,
|
||||||
|
|
|
@ -1342,29 +1342,6 @@ typedef struct _MLME_START_REQ_STRUCT {
|
||||||
UCHAR SsidLen;
|
UCHAR SsidLen;
|
||||||
} MLME_START_REQ_STRUCT, *PMLME_START_REQ_STRUCT;
|
} MLME_START_REQ_STRUCT, *PMLME_START_REQ_STRUCT;
|
||||||
|
|
||||||
#ifdef CONFIG_STA_SUPPORT
|
|
||||||
#ifdef QOS_DLS_SUPPORT
|
|
||||||
// structure for DLS
|
|
||||||
typedef struct _RT_802_11_DLS {
|
|
||||||
USHORT TimeOut; // Use to time out while slience, unit: second , set by UI
|
|
||||||
USHORT CountDownTimer; // Use to time out while slience,unit: second , used by driver only
|
|
||||||
NDIS_802_11_MAC_ADDRESS MacAddr; // set by UI
|
|
||||||
UCHAR Status; // 0: none , 1: wait STAkey, 2: finish DLS setup , set by driver only
|
|
||||||
BOOLEAN Valid; // 1: valid , 0: invalid , set by UI, use to setup or tear down DLS link
|
|
||||||
RALINK_TIMER_STRUCT Timer; // Use to time out while handshake
|
|
||||||
USHORT Sequence;
|
|
||||||
USHORT MacTabMatchWCID; // ASIC
|
|
||||||
BOOLEAN bHTCap;
|
|
||||||
PVOID pAd;
|
|
||||||
} RT_802_11_DLS, *PRT_802_11_DLS;
|
|
||||||
|
|
||||||
typedef struct _MLME_DLS_REQ_STRUCT {
|
|
||||||
PRT_802_11_DLS pDLS;
|
|
||||||
USHORT Reason;
|
|
||||||
} MLME_DLS_REQ_STRUCT, *PMLME_DLS_REQ_STRUCT;
|
|
||||||
#endif // QOS_DLS_SUPPORT //
|
|
||||||
#endif // CONFIG_STA_SUPPORT //
|
|
||||||
|
|
||||||
typedef struct PACKED {
|
typedef struct PACKED {
|
||||||
UCHAR Eid;
|
UCHAR Eid;
|
||||||
UCHAR Len;
|
UCHAR Len;
|
||||||
|
|
|
@ -683,9 +683,6 @@ enum {
|
||||||
#endif // RT2870 //
|
#endif // RT2870 //
|
||||||
RAIO_OFF = 10,
|
RAIO_OFF = 10,
|
||||||
RAIO_ON = 11,
|
RAIO_ON = 11,
|
||||||
#ifdef QOS_DLS_SUPPORT
|
|
||||||
SHOW_DLS_ENTRY_INFO = 19,
|
|
||||||
#endif // QOS_DLS_SUPPORT //
|
|
||||||
SHOW_CFG_VALUE = 20,
|
SHOW_CFG_VALUE = 20,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -990,29 +987,6 @@ typedef struct _RT_LLTD_ASSOICATION_TABLE {
|
||||||
#endif // LLTD_SUPPORT //
|
#endif // LLTD_SUPPORT //
|
||||||
|
|
||||||
#ifdef CONFIG_STA_SUPPORT
|
#ifdef CONFIG_STA_SUPPORT
|
||||||
#ifdef QOS_DLS_SUPPORT
|
|
||||||
//rt2860, kathy 2007-0118
|
|
||||||
// structure for DLS
|
|
||||||
typedef struct _RT_802_11_DLS_UI {
|
|
||||||
USHORT TimeOut; // unit: second , set by UI
|
|
||||||
USHORT CountDownTimer; // unit: second , used by driver only
|
|
||||||
NDIS_802_11_MAC_ADDRESS MacAddr; // set by UI
|
|
||||||
UCHAR Status; // 0: none , 1: wait STAkey, 2: finish DLS setup , set by driver only
|
|
||||||
BOOLEAN Valid; // 1: valid , 0: invalid , set by UI, use to setup or tear down DLS link
|
|
||||||
} RT_802_11_DLS_UI, *PRT_802_11_DLS_UI;
|
|
||||||
|
|
||||||
typedef struct _RT_802_11_DLS_INFO {
|
|
||||||
RT_802_11_DLS_UI Entry[MAX_NUMBER_OF_DLS_ENTRY];
|
|
||||||
UCHAR num;
|
|
||||||
} RT_802_11_DLS_INFO, *PRT_802_11_DLS_INFO;
|
|
||||||
|
|
||||||
typedef enum _RT_802_11_DLS_MODE {
|
|
||||||
DLS_NONE,
|
|
||||||
DLS_WAIT_KEY,
|
|
||||||
DLS_FINISH
|
|
||||||
} RT_802_11_DLS_MODE;
|
|
||||||
#endif // QOS_DLS_SUPPORT //
|
|
||||||
|
|
||||||
#ifdef WPA_SUPPLICANT_SUPPORT
|
#ifdef WPA_SUPPLICANT_SUPPORT
|
||||||
#ifndef NATIVE_WPA_SUPPLICANT_SUPPORT
|
#ifndef NATIVE_WPA_SUPPLICANT_SUPPORT
|
||||||
#define RT_ASSOC_EVENT_FLAG 0x0101
|
#define RT_ASSOC_EVENT_FLAG 0x0101
|
||||||
|
|
|
@ -52,9 +52,6 @@ BUILD_TIMER_FUNCTION(LeapAuthTimeout);
|
||||||
#endif
|
#endif
|
||||||
BUILD_TIMER_FUNCTION(StaQuickResponeForRateUpExec);
|
BUILD_TIMER_FUNCTION(StaQuickResponeForRateUpExec);
|
||||||
BUILD_TIMER_FUNCTION(WpaDisassocApAndBlockAssoc);
|
BUILD_TIMER_FUNCTION(WpaDisassocApAndBlockAssoc);
|
||||||
#ifdef QOS_DLS_SUPPORT
|
|
||||||
BUILD_TIMER_FUNCTION(DlsTimeoutAction);
|
|
||||||
#endif // QOS_DLS_SUPPORT //
|
|
||||||
#endif // CONFIG_STA_SUPPORT //
|
#endif // CONFIG_STA_SUPPORT //
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -529,10 +529,6 @@ DECLARE_TIMER_FUNCTION(StaQuickResponeForRateUpExec);
|
||||||
DECLARE_TIMER_FUNCTION(WpaDisassocApAndBlockAssoc);
|
DECLARE_TIMER_FUNCTION(WpaDisassocApAndBlockAssoc);
|
||||||
DECLARE_TIMER_FUNCTION(PsPollWakeExec);
|
DECLARE_TIMER_FUNCTION(PsPollWakeExec);
|
||||||
DECLARE_TIMER_FUNCTION(RadioOnExec);
|
DECLARE_TIMER_FUNCTION(RadioOnExec);
|
||||||
|
|
||||||
#ifdef QOS_DLS_SUPPORT
|
|
||||||
DECLARE_TIMER_FUNCTION(DlsTimeoutAction);
|
|
||||||
#endif // QOS_DLS_SUPPORT //
|
|
||||||
#endif // CONFIG_STA_SUPPORT //
|
#endif // CONFIG_STA_SUPPORT //
|
||||||
|
|
||||||
void RTMP_GetCurrentSystemTime(LARGE_INTEGER *time);
|
void RTMP_GetCurrentSystemTime(LARGE_INTEGER *time);
|
||||||
|
|
|
@ -217,37 +217,6 @@ int rt28xx_close(IN PNET_DEV dev)
|
||||||
AsicForceWakeup(pAd, TRUE);
|
AsicForceWakeup(pAd, TRUE);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef QOS_DLS_SUPPORT
|
|
||||||
// send DLS-TEAR_DOWN message,
|
|
||||||
if (pAd->CommonCfg.bDLSCapable)
|
|
||||||
{
|
|
||||||
UCHAR i;
|
|
||||||
|
|
||||||
// tear down local dls table entry
|
|
||||||
for (i=0; i<MAX_NUM_OF_INIT_DLS_ENTRY; i++)
|
|
||||||
{
|
|
||||||
if (pAd->StaCfg.DLSEntry[i].Valid && (pAd->StaCfg.DLSEntry[i].Status == DLS_FINISH))
|
|
||||||
{
|
|
||||||
RTMPSendDLSTearDownFrame(pAd, pAd->StaCfg.DLSEntry[i].MacAddr);
|
|
||||||
pAd->StaCfg.DLSEntry[i].Status = DLS_NONE;
|
|
||||||
pAd->StaCfg.DLSEntry[i].Valid = FALSE;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// tear down peer dls table entry
|
|
||||||
for (i=MAX_NUM_OF_INIT_DLS_ENTRY; i<MAX_NUM_OF_DLS_ENTRY; i++)
|
|
||||||
{
|
|
||||||
if (pAd->StaCfg.DLSEntry[i].Valid && (pAd->StaCfg.DLSEntry[i].Status == DLS_FINISH))
|
|
||||||
{
|
|
||||||
RTMPSendDLSTearDownFrame(pAd, pAd->StaCfg.DLSEntry[i].MacAddr);
|
|
||||||
pAd->StaCfg.DLSEntry[i].Status = DLS_NONE;
|
|
||||||
pAd->StaCfg.DLSEntry[i].Valid = FALSE;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
RT28XX_MLME_HANDLER(pAd);
|
|
||||||
}
|
|
||||||
#endif // QOS_DLS_SUPPORT //
|
|
||||||
|
|
||||||
if (INFRA_ON(pAd) &&
|
if (INFRA_ON(pAd) &&
|
||||||
(!RTMP_TEST_FLAG(pAd, fRTMP_ADAPTER_NIC_NOT_EXIST)))
|
(!RTMP_TEST_FLAG(pAd, fRTMP_ADAPTER_NIC_NOT_EXIST)))
|
||||||
{
|
{
|
||||||
|
|
|
@ -821,23 +821,6 @@ static void rtmp_read_sta_wmm_parms_from_file(IN PRTMP_ADAPTER pAd, char *tmpbu
|
||||||
DBGPRINT(RT_DEBUG_TRACE, ("WmmCapable=%d\n", pAd->CommonCfg.bWmmCapable));
|
DBGPRINT(RT_DEBUG_TRACE, ("WmmCapable=%d\n", pAd->CommonCfg.bWmmCapable));
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef QOS_DLS_SUPPORT
|
|
||||||
//DLSCapable
|
|
||||||
if(RTMPGetKeyParameter("DLSCapable", tmpbuf, 32, buffer))
|
|
||||||
{
|
|
||||||
if(simple_strtol(tmpbuf, 0, 10) != 0) //Enable
|
|
||||||
{
|
|
||||||
pAd->CommonCfg.bDLSCapable = TRUE;
|
|
||||||
}
|
|
||||||
else //Disable
|
|
||||||
{
|
|
||||||
pAd->CommonCfg.bDLSCapable = FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
DBGPRINT(RT_DEBUG_TRACE, ("bDLSCapable=%d\n", pAd->CommonCfg.bDLSCapable));
|
|
||||||
}
|
|
||||||
#endif // QOS_DLS_SUPPORT //
|
|
||||||
|
|
||||||
//AckPolicy for AC_BK, AC_BE, AC_VI, AC_VO
|
//AckPolicy for AC_BK, AC_BE, AC_VI, AC_VO
|
||||||
if(RTMPGetKeyParameter("AckPolicy", tmpbuf, 32, buffer))
|
if(RTMPGetKeyParameter("AckPolicy", tmpbuf, 32, buffer))
|
||||||
{
|
{
|
||||||
|
|
|
@ -1324,15 +1324,6 @@ typedef struct _MLME_STRUCT {
|
||||||
// Action
|
// Action
|
||||||
STATE_MACHINE ActMachine;
|
STATE_MACHINE ActMachine;
|
||||||
|
|
||||||
|
|
||||||
#ifdef QOS_DLS_SUPPORT
|
|
||||||
STATE_MACHINE DlsMachine;
|
|
||||||
STATE_MACHINE_FUNC DlsFunc[DLS_FUNC_SIZE];
|
|
||||||
#endif // QOS_DLS_SUPPORT //
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
ULONG ChannelQuality; // 0..100, Channel Quality Indication for Roaming
|
ULONG ChannelQuality; // 0..100, Channel Quality Indication for Roaming
|
||||||
ULONG Now32; // latch the value of NdisGetSystemUpTime()
|
ULONG Now32; // latch the value of NdisGetSystemUpTime()
|
||||||
ULONG LastSendNULLpsmTime;
|
ULONG LastSendNULLpsmTime;
|
||||||
|
@ -2126,10 +2117,6 @@ typedef struct _STA_ADMIN_CONFIG {
|
||||||
UCHAR DtimCount; // 0.. DtimPeriod-1
|
UCHAR DtimCount; // 0.. DtimPeriod-1
|
||||||
UCHAR DtimPeriod; // default = 3
|
UCHAR DtimPeriod; // default = 3
|
||||||
|
|
||||||
#ifdef QOS_DLS_SUPPORT
|
|
||||||
RT_802_11_DLS DLSEntry[MAX_NUM_OF_DLS_ENTRY];
|
|
||||||
UCHAR DlsReplayCounter[8];
|
|
||||||
#endif // QOS_DLS_SUPPORT //
|
|
||||||
////////////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////////////
|
||||||
// This is only for WHQL test.
|
// This is only for WHQL test.
|
||||||
BOOLEAN WhqlTest;
|
BOOLEAN WhqlTest;
|
||||||
|
@ -2301,14 +2288,6 @@ typedef struct _MAC_TABLE_ENTRY {
|
||||||
UCHAR TxRateUpPenalty; // extra # of second penalty due to last unstable condition
|
UCHAR TxRateUpPenalty; // extra # of second penalty due to last unstable condition
|
||||||
//====================================================
|
//====================================================
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#ifdef CONFIG_STA_SUPPORT
|
|
||||||
#ifdef QOS_DLS_SUPPORT
|
|
||||||
UINT MatchDlsEntryIdx; // indicate the index in pAd->StaCfg.DLSEntry
|
|
||||||
#endif // QOS_DLS_SUPPORT //
|
|
||||||
#endif // CONFIG_STA_SUPPORT //
|
|
||||||
|
|
||||||
BOOLEAN fNoisyEnvironment;
|
BOOLEAN fNoisyEnvironment;
|
||||||
BOOLEAN fLastSecAccordingRSSI;
|
BOOLEAN fLastSecAccordingRSSI;
|
||||||
UCHAR LastSecTxRateChangeAction; // 0: no change, 1:rate UP, 2:rate down
|
UCHAR LastSecTxRateChangeAction; // 0: no change, 1:rate UP, 2:rate down
|
||||||
|
@ -3732,22 +3711,6 @@ VOID PeerQOSAction(
|
||||||
IN PRTMP_ADAPTER pAd,
|
IN PRTMP_ADAPTER pAd,
|
||||||
IN MLME_QUEUE_ELEM *Elem);
|
IN MLME_QUEUE_ELEM *Elem);
|
||||||
|
|
||||||
#ifdef QOS_DLS_SUPPORT
|
|
||||||
VOID PeerDLSAction(
|
|
||||||
IN PRTMP_ADAPTER pAd,
|
|
||||||
IN MLME_QUEUE_ELEM *Elem);
|
|
||||||
#endif // QOS_DLS_SUPPORT //
|
|
||||||
|
|
||||||
#ifdef CONFIG_STA_SUPPORT
|
|
||||||
#ifdef QOS_DLS_SUPPORT
|
|
||||||
VOID DlsParmFill(
|
|
||||||
IN PRTMP_ADAPTER pAd,
|
|
||||||
IN OUT MLME_DLS_REQ_STRUCT *pDlsReq,
|
|
||||||
IN PRT_802_11_DLS pDls,
|
|
||||||
IN USHORT reason);
|
|
||||||
#endif // QOS_DLS_SUPPORT //
|
|
||||||
#endif // CONFIG_STA_SUPPORT //
|
|
||||||
|
|
||||||
#ifdef DOT11_N_SUPPORT
|
#ifdef DOT11_N_SUPPORT
|
||||||
VOID RECBATimerTimeout(
|
VOID RECBATimerTimeout(
|
||||||
IN PVOID SystemSpecific1,
|
IN PVOID SystemSpecific1,
|
||||||
|
@ -4679,142 +4642,6 @@ VOID PeerAuthSimpleRspGenAndSend(
|
||||||
// Private routines in dls.c
|
// Private routines in dls.c
|
||||||
//
|
//
|
||||||
|
|
||||||
#ifdef CONFIG_STA_SUPPORT
|
|
||||||
#ifdef QOS_DLS_SUPPORT
|
|
||||||
void DlsStateMachineInit(
|
|
||||||
IN PRTMP_ADAPTER pAd,
|
|
||||||
IN STATE_MACHINE *Sm,
|
|
||||||
OUT STATE_MACHINE_FUNC Trans[]);
|
|
||||||
|
|
||||||
VOID MlmeDlsReqAction(
|
|
||||||
IN PRTMP_ADAPTER pAd,
|
|
||||||
IN MLME_QUEUE_ELEM *Elem);
|
|
||||||
|
|
||||||
VOID PeerDlsReqAction(
|
|
||||||
IN PRTMP_ADAPTER pAd,
|
|
||||||
IN MLME_QUEUE_ELEM *Elem);
|
|
||||||
|
|
||||||
VOID PeerDlsRspAction(
|
|
||||||
IN PRTMP_ADAPTER pAd,
|
|
||||||
IN MLME_QUEUE_ELEM *Elem);
|
|
||||||
|
|
||||||
VOID MlmeDlsTearDownAction(
|
|
||||||
IN PRTMP_ADAPTER pAd,
|
|
||||||
IN MLME_QUEUE_ELEM *Elem);
|
|
||||||
|
|
||||||
VOID PeerDlsTearDownAction(
|
|
||||||
IN PRTMP_ADAPTER pAd,
|
|
||||||
IN MLME_QUEUE_ELEM *Elem);
|
|
||||||
|
|
||||||
VOID RTMPCheckDLSTimeOut(
|
|
||||||
IN PRTMP_ADAPTER pAd);
|
|
||||||
|
|
||||||
BOOLEAN RTMPRcvFrameDLSCheck(
|
|
||||||
IN PRTMP_ADAPTER pAd,
|
|
||||||
IN PHEADER_802_11 pHeader,
|
|
||||||
IN ULONG Len,
|
|
||||||
IN PRT28XX_RXD_STRUC pRxD);
|
|
||||||
|
|
||||||
INT RTMPCheckDLSFrame(
|
|
||||||
IN PRTMP_ADAPTER pAd,
|
|
||||||
IN PUCHAR pDA);
|
|
||||||
|
|
||||||
VOID RTMPSendDLSTearDownFrame(
|
|
||||||
IN PRTMP_ADAPTER pAd,
|
|
||||||
IN PUCHAR pDA);
|
|
||||||
|
|
||||||
NDIS_STATUS RTMPSendSTAKeyRequest(
|
|
||||||
IN PRTMP_ADAPTER pAd,
|
|
||||||
IN PUCHAR pDA);
|
|
||||||
|
|
||||||
NDIS_STATUS RTMPSendSTAKeyHandShake(
|
|
||||||
IN PRTMP_ADAPTER pAd,
|
|
||||||
IN PUCHAR pDA);
|
|
||||||
|
|
||||||
VOID DlsTimeoutAction(
|
|
||||||
IN PVOID SystemSpecific1,
|
|
||||||
IN PVOID FunctionContext,
|
|
||||||
IN PVOID SystemSpecific2,
|
|
||||||
IN PVOID SystemSpecific3);
|
|
||||||
|
|
||||||
BOOLEAN MlmeDlsReqSanity(
|
|
||||||
IN PRTMP_ADAPTER pAd,
|
|
||||||
IN VOID *Msg,
|
|
||||||
IN ULONG MsgLen,
|
|
||||||
OUT PRT_802_11_DLS *pDLS,
|
|
||||||
OUT PUSHORT pReason);
|
|
||||||
|
|
||||||
INT Set_DlsEntryInfo_Display_Proc(
|
|
||||||
IN PRTMP_ADAPTER pAd,
|
|
||||||
IN PUCHAR arg);
|
|
||||||
|
|
||||||
MAC_TABLE_ENTRY *MacTableInsertDlsEntry(
|
|
||||||
IN PRTMP_ADAPTER pAd,
|
|
||||||
IN PUCHAR pAddr,
|
|
||||||
IN UINT DlsEntryIdx);
|
|
||||||
|
|
||||||
BOOLEAN MacTableDeleteDlsEntry(
|
|
||||||
IN PRTMP_ADAPTER pAd,
|
|
||||||
IN USHORT wcid,
|
|
||||||
IN PUCHAR pAddr);
|
|
||||||
|
|
||||||
MAC_TABLE_ENTRY *DlsEntryTableLookup(
|
|
||||||
IN PRTMP_ADAPTER pAd,
|
|
||||||
IN PUCHAR pAddr,
|
|
||||||
IN BOOLEAN bResetIdelCount);
|
|
||||||
|
|
||||||
MAC_TABLE_ENTRY *DlsEntryTableLookupByWcid(
|
|
||||||
IN PRTMP_ADAPTER pAd,
|
|
||||||
IN UCHAR wcid,
|
|
||||||
IN PUCHAR pAddr,
|
|
||||||
IN BOOLEAN bResetIdelCount);
|
|
||||||
|
|
||||||
INT Set_DlsAddEntry_Proc(
|
|
||||||
IN PRTMP_ADAPTER pAd,
|
|
||||||
IN PUCHAR arg);
|
|
||||||
|
|
||||||
INT Set_DlsTearDownEntry_Proc(
|
|
||||||
IN PRTMP_ADAPTER pAd,
|
|
||||||
IN PUCHAR arg);
|
|
||||||
#endif // QOS_DLS_SUPPORT //
|
|
||||||
#endif // CONFIG_STA_SUPPORT //
|
|
||||||
|
|
||||||
#ifdef QOS_DLS_SUPPORT
|
|
||||||
BOOLEAN PeerDlsReqSanity(
|
|
||||||
IN PRTMP_ADAPTER pAd,
|
|
||||||
IN VOID *Msg,
|
|
||||||
IN ULONG MsgLen,
|
|
||||||
OUT PUCHAR pDA,
|
|
||||||
OUT PUCHAR pSA,
|
|
||||||
OUT USHORT *pCapabilityInfo,
|
|
||||||
OUT USHORT *pDlsTimeout,
|
|
||||||
OUT UCHAR *pRatesLen,
|
|
||||||
OUT UCHAR Rates[],
|
|
||||||
OUT UCHAR *pHtCapabilityLen,
|
|
||||||
OUT HT_CAPABILITY_IE *pHtCapability);
|
|
||||||
|
|
||||||
BOOLEAN PeerDlsRspSanity(
|
|
||||||
IN PRTMP_ADAPTER pAd,
|
|
||||||
IN VOID *Msg,
|
|
||||||
IN ULONG MsgLen,
|
|
||||||
OUT PUCHAR pDA,
|
|
||||||
OUT PUCHAR pSA,
|
|
||||||
OUT USHORT *pCapabilityInfo,
|
|
||||||
OUT USHORT *pStatus,
|
|
||||||
OUT UCHAR *pRatesLen,
|
|
||||||
OUT UCHAR Rates[],
|
|
||||||
OUT UCHAR *pHtCapabilityLen,
|
|
||||||
OUT HT_CAPABILITY_IE *pHtCapability);
|
|
||||||
|
|
||||||
BOOLEAN PeerDlsTearDownSanity(
|
|
||||||
IN PRTMP_ADAPTER pAd,
|
|
||||||
IN VOID *Msg,
|
|
||||||
IN ULONG MsgLen,
|
|
||||||
OUT PUCHAR pDA,
|
|
||||||
OUT PUCHAR pSA,
|
|
||||||
OUT USHORT *pReason);
|
|
||||||
#endif // QOS_DLS_SUPPORT //
|
|
||||||
|
|
||||||
//========================================
|
//========================================
|
||||||
|
|
||||||
VOID SyncStateMachineInit(
|
VOID SyncStateMachineInit(
|
||||||
|
@ -4919,12 +4746,6 @@ VOID CntlWaitAssocProc(
|
||||||
IN PRTMP_ADAPTER pAd,
|
IN PRTMP_ADAPTER pAd,
|
||||||
IN MLME_QUEUE_ELEM *Elem);
|
IN MLME_QUEUE_ELEM *Elem);
|
||||||
|
|
||||||
#ifdef QOS_DLS_SUPPORT
|
|
||||||
VOID CntlOidDLSSetupProc(
|
|
||||||
IN PRTMP_ADAPTER pAd,
|
|
||||||
IN MLME_QUEUE_ELEM *Elem);
|
|
||||||
#endif // QOS_DLS_SUPPORT //
|
|
||||||
|
|
||||||
VOID LinkUp(
|
VOID LinkUp(
|
||||||
IN PRTMP_ADAPTER pAd,
|
IN PRTMP_ADAPTER pAd,
|
||||||
IN UCHAR BssType);
|
IN UCHAR BssType);
|
||||||
|
|
|
@ -636,10 +636,6 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#ifdef QOS_DLS_SUPPORT
|
|
||||||
#define DLS_STATE_MACHINE 26
|
|
||||||
#endif // QOS_DLS_SUPPORT //
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// STA's CONTROL/CONNECT state machine: states, events, total function #
|
// STA's CONTROL/CONNECT state machine: states, events, total function #
|
||||||
//
|
//
|
||||||
|
|
|
@ -948,36 +948,6 @@ VOID MlmeDisassocReqAction(
|
||||||
ULONG Timeout = 0;
|
ULONG Timeout = 0;
|
||||||
USHORT Status;
|
USHORT Status;
|
||||||
|
|
||||||
#ifdef QOS_DLS_SUPPORT
|
|
||||||
// send DLS-TEAR_DOWN message,
|
|
||||||
if (pAd->CommonCfg.bDLSCapable)
|
|
||||||
{
|
|
||||||
UCHAR i;
|
|
||||||
|
|
||||||
// tear down local dls table entry
|
|
||||||
for (i=0; i<MAX_NUM_OF_INIT_DLS_ENTRY; i++)
|
|
||||||
{
|
|
||||||
if (pAd->StaCfg.DLSEntry[i].Valid && (pAd->StaCfg.DLSEntry[i].Status == DLS_FINISH))
|
|
||||||
{
|
|
||||||
RTMPSendDLSTearDownFrame(pAd, pAd->StaCfg.DLSEntry[i].MacAddr);
|
|
||||||
pAd->StaCfg.DLSEntry[i].Status = DLS_NONE;
|
|
||||||
pAd->StaCfg.DLSEntry[i].Valid = FALSE;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// tear down peer dls table entry
|
|
||||||
for (i=MAX_NUM_OF_INIT_DLS_ENTRY; i<MAX_NUM_OF_DLS_ENTRY; i++)
|
|
||||||
{
|
|
||||||
if (pAd->StaCfg.DLSEntry[i].Valid && (pAd->StaCfg.DLSEntry[i].Status == DLS_FINISH))
|
|
||||||
{
|
|
||||||
RTMPSendDLSTearDownFrame(pAd, pAd->StaCfg.DLSEntry[i].MacAddr);
|
|
||||||
pAd->StaCfg.DLSEntry[i].Status = DLS_NONE;
|
|
||||||
pAd->StaCfg.DLSEntry[i].Valid = FALSE;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif // QOS_DLS_SUPPORT //
|
|
||||||
|
|
||||||
// skip sanity check
|
// skip sanity check
|
||||||
pDisassocReq = (PMLME_DISASSOC_REQ_STRUCT)(Elem->Msg);
|
pDisassocReq = (PMLME_DISASSOC_REQ_STRUCT)(Elem->Msg);
|
||||||
|
|
||||||
|
|
|
@ -288,12 +288,6 @@ VOID CntlIdleProc(
|
||||||
WpaMicFailureReportFrame(pAd, Elem);
|
WpaMicFailureReportFrame(pAd, Elem);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
#ifdef QOS_DLS_SUPPORT
|
|
||||||
case RT_OID_802_11_SET_DLS_PARAM:
|
|
||||||
CntlOidDLSSetupProc(pAd, Elem);
|
|
||||||
break;
|
|
||||||
#endif // QOS_DLS_SUPPORT //
|
|
||||||
|
|
||||||
default:
|
default:
|
||||||
DBGPRINT(RT_DEBUG_TRACE, ("CNTL - Illegal message in CntlIdleProc(MsgType=%ld)\n",Elem->MsgType));
|
DBGPRINT(RT_DEBUG_TRACE, ("CNTL - Illegal message in CntlIdleProc(MsgType=%ld)\n",Elem->MsgType));
|
||||||
break;
|
break;
|
||||||
|
@ -687,113 +681,6 @@ VOID CntlMlmeRoamingProc(
|
||||||
IterateOnBssTab(pAd);
|
IterateOnBssTab(pAd);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef QOS_DLS_SUPPORT
|
|
||||||
/*
|
|
||||||
==========================================================================
|
|
||||||
Description:
|
|
||||||
|
|
||||||
IRQL = DISPATCH_LEVEL
|
|
||||||
|
|
||||||
==========================================================================
|
|
||||||
*/
|
|
||||||
VOID CntlOidDLSSetupProc(
|
|
||||||
IN PRTMP_ADAPTER pAd,
|
|
||||||
IN MLME_QUEUE_ELEM *Elem)
|
|
||||||
{
|
|
||||||
PRT_802_11_DLS pDLS = (PRT_802_11_DLS)Elem->Msg;
|
|
||||||
MLME_DLS_REQ_STRUCT MlmeDlsReq;
|
|
||||||
INT i;
|
|
||||||
USHORT reason = REASON_UNSPECIFY;
|
|
||||||
|
|
||||||
DBGPRINT(RT_DEBUG_TRACE,("CNTL - (OID set %02x:%02x:%02x:%02x:%02x:%02x with Valid=%d, Status=%d, TimeOut=%d, CountDownTimer=%d)\n",
|
|
||||||
pDLS->MacAddr[0], pDLS->MacAddr[1], pDLS->MacAddr[2], pDLS->MacAddr[3], pDLS->MacAddr[4], pDLS->MacAddr[5],
|
|
||||||
pDLS->Valid, pDLS->Status, pDLS->TimeOut, pDLS->CountDownTimer));
|
|
||||||
|
|
||||||
if (!pAd->CommonCfg.bDLSCapable)
|
|
||||||
return;
|
|
||||||
|
|
||||||
// DLS will not be supported when Adhoc mode
|
|
||||||
if (INFRA_ON(pAd))
|
|
||||||
{
|
|
||||||
for (i = 0; i < MAX_NUM_OF_DLS_ENTRY; i++)
|
|
||||||
{
|
|
||||||
if (pDLS->Valid && pAd->StaCfg.DLSEntry[i].Valid && (pAd->StaCfg.DLSEntry[i].Status == DLS_FINISH) &&
|
|
||||||
(pDLS->TimeOut == pAd->StaCfg.DLSEntry[i].TimeOut) && MAC_ADDR_EQUAL(pDLS->MacAddr, pAd->StaCfg.DLSEntry[i].MacAddr))
|
|
||||||
{
|
|
||||||
// 1. Same setting, just drop it
|
|
||||||
DBGPRINT(RT_DEBUG_TRACE,("CNTL - setting unchanged\n"));
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
else if (!pDLS->Valid && pAd->StaCfg.DLSEntry[i].Valid && (pAd->StaCfg.DLSEntry[i].Status == DLS_FINISH) &&
|
|
||||||
MAC_ADDR_EQUAL(pDLS->MacAddr, pAd->StaCfg.DLSEntry[i].MacAddr))
|
|
||||||
{
|
|
||||||
// 2. Disable DLS link case, just tear down DLS link
|
|
||||||
reason = REASON_QOS_UNWANTED_MECHANISM;
|
|
||||||
pAd->StaCfg.DLSEntry[i].Valid = FALSE;
|
|
||||||
pAd->StaCfg.DLSEntry[i].Status = DLS_NONE;
|
|
||||||
DlsParmFill(pAd, &MlmeDlsReq, &pAd->StaCfg.DLSEntry[i], reason);
|
|
||||||
MlmeEnqueue(pAd, DLS_STATE_MACHINE, MT2_MLME_DLS_TEAR_DOWN, sizeof(MLME_DLS_REQ_STRUCT), &MlmeDlsReq);
|
|
||||||
DBGPRINT(RT_DEBUG_TRACE,("CNTL - start tear down procedure\n"));
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
else if ((i < MAX_NUM_OF_DLS_ENTRY) && pDLS->Valid && !pAd->StaCfg.DLSEntry[i].Valid)
|
|
||||||
{
|
|
||||||
// 3. Enable case, start DLS setup procedure
|
|
||||||
NdisMoveMemory(&pAd->StaCfg.DLSEntry[i], pDLS, sizeof(RT_802_11_DLS_UI));
|
|
||||||
|
|
||||||
//Update countdown timer
|
|
||||||
pAd->StaCfg.DLSEntry[i].CountDownTimer = pAd->StaCfg.DLSEntry[i].TimeOut;
|
|
||||||
DlsParmFill(pAd, &MlmeDlsReq, &pAd->StaCfg.DLSEntry[i], reason);
|
|
||||||
MlmeEnqueue(pAd, DLS_STATE_MACHINE, MT2_MLME_DLS_REQ, sizeof(MLME_DLS_REQ_STRUCT), &MlmeDlsReq);
|
|
||||||
DBGPRINT(RT_DEBUG_TRACE,("CNTL - DLS setup case\n"));
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
else if ((i < MAX_NUM_OF_DLS_ENTRY) && pDLS->Valid && pAd->StaCfg.DLSEntry[i].Valid &&
|
|
||||||
(pAd->StaCfg.DLSEntry[i].Status == DLS_FINISH) && !MAC_ADDR_EQUAL(pDLS->MacAddr, pAd->StaCfg.DLSEntry[i].MacAddr))
|
|
||||||
{
|
|
||||||
// 4. update mac case, tear down old DLS and setup new DLS
|
|
||||||
reason = REASON_QOS_UNWANTED_MECHANISM;
|
|
||||||
pAd->StaCfg.DLSEntry[i].Valid = FALSE;
|
|
||||||
pAd->StaCfg.DLSEntry[i].Status = DLS_NONE;
|
|
||||||
DlsParmFill(pAd, &MlmeDlsReq, &pAd->StaCfg.DLSEntry[i], reason);
|
|
||||||
MlmeEnqueue(pAd, DLS_STATE_MACHINE, MT2_MLME_DLS_TEAR_DOWN, sizeof(MLME_DLS_REQ_STRUCT), &MlmeDlsReq);
|
|
||||||
NdisMoveMemory(&pAd->StaCfg.DLSEntry[i], pDLS, sizeof(RT_802_11_DLS_UI));
|
|
||||||
DlsParmFill(pAd, &MlmeDlsReq, &pAd->StaCfg.DLSEntry[i], reason);
|
|
||||||
MlmeEnqueue(pAd, DLS_STATE_MACHINE, MT2_MLME_DLS_REQ, sizeof(MLME_DLS_REQ_STRUCT), &MlmeDlsReq);
|
|
||||||
DBGPRINT(RT_DEBUG_TRACE,("CNTL - DLS tear down and restart case\n"));
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
else if (pDLS->Valid && pAd->StaCfg.DLSEntry[i].Valid &&
|
|
||||||
MAC_ADDR_EQUAL(pDLS->MacAddr, pAd->StaCfg.DLSEntry[i].MacAddr) && (pAd->StaCfg.DLSEntry[i].TimeOut != pDLS->TimeOut))
|
|
||||||
{
|
|
||||||
// 5. update timeout case, start DLS setup procedure (no tear down)
|
|
||||||
pAd->StaCfg.DLSEntry[i].TimeOut = pDLS->TimeOut;
|
|
||||||
//Update countdown timer
|
|
||||||
pAd->StaCfg.DLSEntry[i].CountDownTimer = pAd->StaCfg.DLSEntry[i].TimeOut;
|
|
||||||
DlsParmFill(pAd, &MlmeDlsReq, &pAd->StaCfg.DLSEntry[i], reason);
|
|
||||||
MlmeEnqueue(pAd, DLS_STATE_MACHINE, MT2_MLME_DLS_REQ, sizeof(MLME_DLS_REQ_STRUCT), &MlmeDlsReq);
|
|
||||||
DBGPRINT(RT_DEBUG_TRACE,("CNTL - DLS update timeout case\n"));
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
else if (pDLS->Valid && pAd->StaCfg.DLSEntry[i].Valid &&
|
|
||||||
(pAd->StaCfg.DLSEntry[i].Status != DLS_FINISH) && MAC_ADDR_EQUAL(pDLS->MacAddr, pAd->StaCfg.DLSEntry[i].MacAddr))
|
|
||||||
{
|
|
||||||
// 6. re-setup case, start DLS setup procedure (no tear down)
|
|
||||||
DlsParmFill(pAd, &MlmeDlsReq, &pAd->StaCfg.DLSEntry[i], reason);
|
|
||||||
MlmeEnqueue(pAd, DLS_STATE_MACHINE, MT2_MLME_DLS_REQ, sizeof(MLME_DLS_REQ_STRUCT), &MlmeDlsReq);
|
|
||||||
DBGPRINT(RT_DEBUG_TRACE,("CNTL - DLS retry setup procedure\n"));
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
DBGPRINT(RT_DEBUG_WARN,("CNTL - DLS not changed in entry - %d - Valid=%d, Status=%d, TimeOut=%d\n",
|
|
||||||
i, pAd->StaCfg.DLSEntry[i].Valid, pAd->StaCfg.DLSEntry[i].Status, pAd->StaCfg.DLSEntry[i].TimeOut));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif // QOS_DLS_SUPPORT //
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
==========================================================================
|
==========================================================================
|
||||||
Description:
|
Description:
|
||||||
|
@ -2027,33 +1914,6 @@ VOID LinkDown(
|
||||||
{
|
{
|
||||||
DBGPRINT(RT_DEBUG_TRACE, ("!!! LINK DOWN 2!!!\n"));
|
DBGPRINT(RT_DEBUG_TRACE, ("!!! LINK DOWN 2!!!\n"));
|
||||||
|
|
||||||
#ifdef QOS_DLS_SUPPORT
|
|
||||||
// DLS tear down frame must be sent before link down
|
|
||||||
// send DLS-TEAR_DOWN message
|
|
||||||
if (pAd->CommonCfg.bDLSCapable)
|
|
||||||
{
|
|
||||||
// tear down local dls table entry
|
|
||||||
for (i=0; i<MAX_NUM_OF_INIT_DLS_ENTRY; i++)
|
|
||||||
{
|
|
||||||
if (pAd->StaCfg.DLSEntry[i].Valid && (pAd->StaCfg.DLSEntry[i].Status == DLS_FINISH))
|
|
||||||
{
|
|
||||||
pAd->StaCfg.DLSEntry[i].Status = DLS_NONE;
|
|
||||||
RTMPSendDLSTearDownFrame(pAd, pAd->StaCfg.DLSEntry[i].MacAddr);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// tear down peer dls table entry
|
|
||||||
for (i=MAX_NUM_OF_INIT_DLS_ENTRY; i<MAX_NUM_OF_DLS_ENTRY; i++)
|
|
||||||
{
|
|
||||||
if (pAd->StaCfg.DLSEntry[i].Valid && (pAd->StaCfg.DLSEntry[i].Status == DLS_FINISH))
|
|
||||||
{
|
|
||||||
pAd->StaCfg.DLSEntry[i].Status = DLS_NONE;
|
|
||||||
RTMPSendDLSTearDownFrame(pAd, pAd->StaCfg.DLSEntry[i].MacAddr);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif // QOS_DLS_SUPPORT //
|
|
||||||
|
|
||||||
OPSTATUS_CLEAR_FLAG(pAd, fOP_STATUS_INFRA_ON);
|
OPSTATUS_CLEAR_FLAG(pAd, fOP_STATUS_INFRA_ON);
|
||||||
OPSTATUS_CLEAR_FLAG(pAd, fOP_STATUS_MEDIA_STATE_CONNECTED);
|
OPSTATUS_CLEAR_FLAG(pAd, fOP_STATUS_MEDIA_STATE_CONNECTED);
|
||||||
|
|
||||||
|
@ -2152,11 +2012,6 @@ VOID LinkDown(
|
||||||
pAd->StaCfg.WpaState = SS_START;
|
pAd->StaCfg.WpaState = SS_START;
|
||||||
// Clear Replay counter
|
// Clear Replay counter
|
||||||
NdisZeroMemory(pAd->StaCfg.ReplayCounter, 8);
|
NdisZeroMemory(pAd->StaCfg.ReplayCounter, 8);
|
||||||
|
|
||||||
#ifdef QOS_DLS_SUPPORT
|
|
||||||
if (pAd->CommonCfg.bDLSCapable)
|
|
||||||
NdisZeroMemory(pAd->StaCfg.DlsReplayCounter, 8);
|
|
||||||
#endif // QOS_DLS_SUPPORT //
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -2476,26 +2331,6 @@ VOID ScanParmFill(
|
||||||
ScanReq->ScanType = ScanType;
|
ScanReq->ScanType = ScanType;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef QOS_DLS_SUPPORT
|
|
||||||
/*
|
|
||||||
==========================================================================
|
|
||||||
Description:
|
|
||||||
|
|
||||||
IRQL = DISPATCH_LEVEL
|
|
||||||
|
|
||||||
==========================================================================
|
|
||||||
*/
|
|
||||||
VOID DlsParmFill(
|
|
||||||
IN PRTMP_ADAPTER pAd,
|
|
||||||
IN OUT MLME_DLS_REQ_STRUCT *pDlsReq,
|
|
||||||
IN PRT_802_11_DLS pDls,
|
|
||||||
IN USHORT reason)
|
|
||||||
{
|
|
||||||
pDlsReq->pDLS = pDls;
|
|
||||||
pDlsReq->Reason = reason;
|
|
||||||
}
|
|
||||||
#endif // QOS_DLS_SUPPORT //
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
==========================================================================
|
==========================================================================
|
||||||
Description:
|
Description:
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -183,9 +183,6 @@ VOID STARxDataFrameAnnounce(
|
||||||
// ARALINK
|
// ARALINK
|
||||||
CmmRxRalinkFrameIndicate(pAd, pEntry, pRxBlk, FromWhichBSSID);
|
CmmRxRalinkFrameIndicate(pAd, pEntry, pRxBlk, FromWhichBSSID);
|
||||||
}
|
}
|
||||||
#ifdef QOS_DLS_SUPPORT
|
|
||||||
RX_BLK_CLEAR_FLAG(pRxBlk, fRX_DLS);
|
|
||||||
#endif // QOS_DLS_SUPPORT //
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -291,14 +288,6 @@ VOID STAHandleRxDataFrame(
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef QOS_DLS_SUPPORT
|
|
||||||
//if ((pHeader->FC.FrDs == 0) && (pHeader->FC.ToDs == 0))
|
|
||||||
if (RTMPRcvFrameDLSCheck(pAd, pHeader, pRxWI->MPDUtotalByteCount, pRxD))
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
#endif // QOS_DLS_SUPPORT //
|
|
||||||
|
|
||||||
// Drop not my BSS frames
|
// Drop not my BSS frames
|
||||||
if (pRxD->MyBss == 0)
|
if (pRxD->MyBss == 0)
|
||||||
{
|
{
|
||||||
|
@ -357,10 +346,7 @@ VOID STAHandleRxDataFrame(
|
||||||
}
|
}
|
||||||
|
|
||||||
// Drop not my BSS frame (we can not only check the MyBss bit in RxD)
|
// Drop not my BSS frame (we can not only check the MyBss bit in RxD)
|
||||||
#ifdef QOS_DLS_SUPPORT
|
|
||||||
if (!pAd->CommonCfg.bDLSCapable)
|
|
||||||
{
|
|
||||||
#endif // QOS_DLS_SUPPORT //
|
|
||||||
if (INFRA_ON(pAd))
|
if (INFRA_ON(pAd))
|
||||||
{
|
{
|
||||||
// Infrastructure mode, check address 2 for BSSID
|
// Infrastructure mode, check address 2 for BSSID
|
||||||
|
@ -383,9 +369,6 @@ VOID STAHandleRxDataFrame(
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#ifdef QOS_DLS_SUPPORT
|
|
||||||
}
|
|
||||||
#endif // QOS_DLS_SUPPORT //
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// find pEntry
|
// find pEntry
|
||||||
|
@ -406,11 +389,6 @@ VOID STAHandleRxDataFrame(
|
||||||
if (INFRA_ON(pAd))
|
if (INFRA_ON(pAd))
|
||||||
{
|
{
|
||||||
RX_BLK_SET_FLAG(pRxBlk, fRX_INFRA);
|
RX_BLK_SET_FLAG(pRxBlk, fRX_INFRA);
|
||||||
#ifdef QOS_DLS_SUPPORT
|
|
||||||
if ((pHeader->FC.FrDs == 0) && (pHeader->FC.ToDs == 0))
|
|
||||||
RX_BLK_SET_FLAG(pRxBlk, fRX_DLS);
|
|
||||||
else
|
|
||||||
#endif // QOS_DLS_SUPPORT //
|
|
||||||
ASSERT(pRxWI->WirelessCliID == BSSID_WCID);
|
ASSERT(pRxWI->WirelessCliID == BSSID_WCID);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -524,18 +502,6 @@ VOID STAHandleRxDataFrame(
|
||||||
{
|
{
|
||||||
pAd->LastRxRate = (USHORT)((pRxWI->MCS) + (pRxWI->BW <<7) + (pRxWI->ShortGI <<8)+ (pRxWI->PHYMODE <<14)) ;
|
pAd->LastRxRate = (USHORT)((pRxWI->MCS) + (pRxWI->BW <<7) + (pRxWI->ShortGI <<8)+ (pRxWI->PHYMODE <<14)) ;
|
||||||
|
|
||||||
|
|
||||||
#ifdef QOS_DLS_SUPPORT
|
|
||||||
if (RX_BLK_TEST_FLAG(pRxBlk, fRX_DLS))
|
|
||||||
{
|
|
||||||
MAC_TABLE_ENTRY *pDlsEntry = NULL;
|
|
||||||
|
|
||||||
pDlsEntry = DlsEntryTableLookupByWcid(pAd, pRxWI->WirelessCliID, pHeader->Addr2, TRUE);
|
|
||||||
if(pDlsEntry)
|
|
||||||
Update_Rssi_Sample(pAd, &pDlsEntry->RssiSample, pRxWI);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
#endif // QOS_DLS_SUPPORT //
|
|
||||||
if (ADHOC_ON(pAd))
|
if (ADHOC_ON(pAd))
|
||||||
{
|
{
|
||||||
pEntry = MacTableLookup(pAd, pHeader->Addr2);
|
pEntry = MacTableLookup(pAd, pHeader->Addr2);
|
||||||
|
@ -885,17 +851,6 @@ VOID STASendPackets(
|
||||||
{
|
{
|
||||||
// Record that orignal packet source is from NDIS layer,so that
|
// Record that orignal packet source is from NDIS layer,so that
|
||||||
// later on driver knows how to release this NDIS PACKET
|
// later on driver knows how to release this NDIS PACKET
|
||||||
#ifdef QOS_DLS_SUPPORT
|
|
||||||
MAC_TABLE_ENTRY *pEntry;
|
|
||||||
PUCHAR pSrcBufVA = GET_OS_PKT_DATAPTR(pPacket);
|
|
||||||
|
|
||||||
pEntry = MacTableLookup(pAd, pSrcBufVA);
|
|
||||||
if (pEntry && (pEntry->ValidAsDls == TRUE))
|
|
||||||
{
|
|
||||||
RTMP_SET_PACKET_WCID(pPacket, pEntry->Aid);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
#endif // QOS_DLS_SUPPORT //
|
|
||||||
RTMP_SET_PACKET_WCID(pPacket, 0); // this field is useless when in STA mode
|
RTMP_SET_PACKET_WCID(pPacket, 0); // this field is useless when in STA mode
|
||||||
RTMP_SET_PACKET_SOURCE(pPacket, PKTSRC_NDIS);
|
RTMP_SET_PACKET_SOURCE(pPacket, PKTSRC_NDIS);
|
||||||
NDIS_SET_PACKET_STATUS(pPacket, NDIS_STATUS_PENDING);
|
NDIS_SET_PACKET_STATUS(pPacket, NDIS_STATUS_PENDING);
|
||||||
|
@ -978,18 +933,6 @@ NDIS_STATUS STASendPacket(
|
||||||
{
|
{
|
||||||
if(INFRA_ON(pAd))
|
if(INFRA_ON(pAd))
|
||||||
{
|
{
|
||||||
#ifdef QOS_DLS_SUPPORT
|
|
||||||
USHORT tmpWcid;
|
|
||||||
|
|
||||||
tmpWcid = RTMP_GET_PACKET_WCID(pPacket);
|
|
||||||
if (VALID_WCID(tmpWcid) &&
|
|
||||||
(pAd->MacTab.Content[tmpWcid].ValidAsDls== TRUE))
|
|
||||||
{
|
|
||||||
pEntry = &pAd->MacTab.Content[tmpWcid];
|
|
||||||
Rate = pAd->MacTab.Content[tmpWcid].CurrTxRate;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
#endif // QOS_DLS_SUPPORT //
|
|
||||||
{
|
{
|
||||||
pEntry = &pAd->MacTab.Content[BSSID_WCID];
|
pEntry = &pAd->MacTab.Content[BSSID_WCID];
|
||||||
RTMP_SET_PACKET_WCID(pPacket, BSSID_WCID);
|
RTMP_SET_PACKET_WCID(pPacket, BSSID_WCID);
|
||||||
|
@ -1471,12 +1414,7 @@ VOID STABuildCommon802_11Header(
|
||||||
IN PRTMP_ADAPTER pAd,
|
IN PRTMP_ADAPTER pAd,
|
||||||
IN TX_BLK *pTxBlk)
|
IN TX_BLK *pTxBlk)
|
||||||
{
|
{
|
||||||
|
|
||||||
HEADER_802_11 *pHeader_802_11;
|
HEADER_802_11 *pHeader_802_11;
|
||||||
#ifdef QOS_DLS_SUPPORT
|
|
||||||
BOOLEAN bDLSFrame = FALSE;
|
|
||||||
INT DlsEntryIndex = 0;
|
|
||||||
#endif // QOS_DLS_SUPPORT //
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// MAKE A COMMON 802.11 HEADER
|
// MAKE A COMMON 802.11 HEADER
|
||||||
|
@ -1493,19 +1431,6 @@ VOID STABuildCommon802_11Header(
|
||||||
pHeader_802_11->FC.Type = BTYPE_DATA;
|
pHeader_802_11->FC.Type = BTYPE_DATA;
|
||||||
pHeader_802_11->FC.SubType = ((TX_BLK_TEST_FLAG(pTxBlk, fTX_bWMM)) ? SUBTYPE_QDATA : SUBTYPE_DATA);
|
pHeader_802_11->FC.SubType = ((TX_BLK_TEST_FLAG(pTxBlk, fTX_bWMM)) ? SUBTYPE_QDATA : SUBTYPE_DATA);
|
||||||
|
|
||||||
#ifdef QOS_DLS_SUPPORT
|
|
||||||
if (INFRA_ON(pAd))
|
|
||||||
{
|
|
||||||
// Check if the frame can be sent through DLS direct link interface
|
|
||||||
// If packet can be sent through DLS, then force aggregation disable. (Hard to determine peer STA's capability)
|
|
||||||
DlsEntryIndex = RTMPCheckDLSFrame(pAd, pTxBlk->pSrcBufHeader);
|
|
||||||
if (DlsEntryIndex >= 0)
|
|
||||||
bDLSFrame = TRUE;
|
|
||||||
else
|
|
||||||
bDLSFrame = FALSE;
|
|
||||||
}
|
|
||||||
#endif // QOS_DLS_SUPPORT //
|
|
||||||
|
|
||||||
if (pTxBlk->pMacEntry)
|
if (pTxBlk->pMacEntry)
|
||||||
{
|
{
|
||||||
if (TX_BLK_TEST_FLAG(pTxBlk, fTX_bForceNonQoS))
|
if (TX_BLK_TEST_FLAG(pTxBlk, fTX_bForceNonQoS))
|
||||||
|
@ -1515,14 +1440,6 @@ VOID STABuildCommon802_11Header(
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
#ifdef QOS_DLS_SUPPORT
|
|
||||||
if (bDLSFrame)
|
|
||||||
{
|
|
||||||
pHeader_802_11->Sequence = pAd->StaCfg.DLSEntry[DlsEntryIndex].Sequence;
|
|
||||||
pAd->StaCfg.DLSEntry[DlsEntryIndex].Sequence = (pAd->StaCfg.DLSEntry[DlsEntryIndex].Sequence+1) & MAXSEQ;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
#endif // QOS_DLS_SUPPORT //
|
|
||||||
{
|
{
|
||||||
pHeader_802_11->Sequence = pTxBlk->pMacEntry->TxSeq[pTxBlk->UserPriority];
|
pHeader_802_11->Sequence = pTxBlk->pMacEntry->TxSeq[pTxBlk->UserPriority];
|
||||||
pTxBlk->pMacEntry->TxSeq[pTxBlk->UserPriority] = (pTxBlk->pMacEntry->TxSeq[pTxBlk->UserPriority]+1) & MAXSEQ;
|
pTxBlk->pMacEntry->TxSeq[pTxBlk->UserPriority] = (pTxBlk->pMacEntry->TxSeq[pTxBlk->UserPriority]+1) & MAXSEQ;
|
||||||
|
@ -1542,16 +1459,6 @@ VOID STABuildCommon802_11Header(
|
||||||
{
|
{
|
||||||
if (INFRA_ON(pAd))
|
if (INFRA_ON(pAd))
|
||||||
{
|
{
|
||||||
#ifdef QOS_DLS_SUPPORT
|
|
||||||
if (bDLSFrame)
|
|
||||||
{
|
|
||||||
COPY_MAC_ADDR(pHeader_802_11->Addr1, pTxBlk->pSrcBufHeader);
|
|
||||||
COPY_MAC_ADDR(pHeader_802_11->Addr2, pAd->CurrentAddress);
|
|
||||||
COPY_MAC_ADDR(pHeader_802_11->Addr3, pAd->CommonCfg.Bssid);
|
|
||||||
pHeader_802_11->FC.ToDs = 0;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
#endif // QOS_DLS_SUPPORT //
|
|
||||||
{
|
{
|
||||||
COPY_MAC_ADDR(pHeader_802_11->Addr1, pAd->CommonCfg.Bssid);
|
COPY_MAC_ADDR(pHeader_802_11->Addr1, pAd->CommonCfg.Bssid);
|
||||||
COPY_MAC_ADDR(pHeader_802_11->Addr2, pAd->CurrentAddress);
|
COPY_MAC_ADDR(pHeader_802_11->Addr2, pAd->CurrentAddress);
|
||||||
|
@ -1607,29 +1514,7 @@ VOID STABuildCache802_11Header(
|
||||||
pMacEntry->TxSeq[pTxBlk->UserPriority] = (pMacEntry->TxSeq[pTxBlk->UserPriority]+1) & MAXSEQ;
|
pMacEntry->TxSeq[pTxBlk->UserPriority] = (pMacEntry->TxSeq[pTxBlk->UserPriority]+1) & MAXSEQ;
|
||||||
|
|
||||||
{
|
{
|
||||||
// Check if the frame can be sent through DLS direct link interface
|
|
||||||
// If packet can be sent through DLS, then force aggregation disable. (Hard to determine peer STA's capability)
|
|
||||||
#ifdef QOS_DLS_SUPPORT
|
|
||||||
BOOLEAN bDLSFrame = FALSE;
|
|
||||||
INT DlsEntryIndex = 0;
|
|
||||||
|
|
||||||
DlsEntryIndex = RTMPCheckDLSFrame(pAd, pTxBlk->pSrcBufHeader);
|
|
||||||
if (DlsEntryIndex >= 0)
|
|
||||||
bDLSFrame = TRUE;
|
|
||||||
else
|
|
||||||
bDLSFrame = FALSE;
|
|
||||||
#endif // QOS_DLS_SUPPORT //
|
|
||||||
|
|
||||||
// The addr3 of normal packet send from DS is Dest Mac address.
|
// The addr3 of normal packet send from DS is Dest Mac address.
|
||||||
#ifdef QOS_DLS_SUPPORT
|
|
||||||
if (bDLSFrame)
|
|
||||||
{
|
|
||||||
COPY_MAC_ADDR(pHeader80211->Addr1, pTxBlk->pSrcBufHeader);
|
|
||||||
COPY_MAC_ADDR(pHeader80211->Addr3, pAd->CommonCfg.Bssid);
|
|
||||||
pHeader80211->FC.ToDs = 0;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
#endif // QOS_DLS_SUPPORT //
|
|
||||||
if (ADHOC_ON(pAd))
|
if (ADHOC_ON(pAd))
|
||||||
COPY_MAC_ADDR(pHeader80211->Addr3, pAd->CommonCfg.Bssid);
|
COPY_MAC_ADDR(pHeader80211->Addr3, pAd->CommonCfg.Bssid);
|
||||||
else
|
else
|
||||||
|
|
|
@ -85,10 +85,6 @@ struct iw_priv_args privtab[] = {
|
||||||
0, IW_PRIV_TYPE_CHAR | IW_PRIV_SIZE_MASK, "radio_off" },
|
0, IW_PRIV_TYPE_CHAR | IW_PRIV_SIZE_MASK, "radio_off" },
|
||||||
{ RAIO_ON,
|
{ RAIO_ON,
|
||||||
0, IW_PRIV_TYPE_CHAR | IW_PRIV_SIZE_MASK, "radio_on" },
|
0, IW_PRIV_TYPE_CHAR | IW_PRIV_SIZE_MASK, "radio_on" },
|
||||||
#ifdef QOS_DLS_SUPPORT
|
|
||||||
{ SHOW_DLS_ENTRY_INFO,
|
|
||||||
0, IW_PRIV_TYPE_CHAR | IW_PRIV_SIZE_MASK, "dlsentryinfo" },
|
|
||||||
#endif // QOS_DLS_SUPPORT //
|
|
||||||
{ SHOW_CFG_VALUE,
|
{ SHOW_CFG_VALUE,
|
||||||
IW_PRIV_TYPE_CHAR | 1024, IW_PRIV_TYPE_CHAR | IW_PRIV_SIZE_MASK, "show" },
|
IW_PRIV_TYPE_CHAR | 1024, IW_PRIV_TYPE_CHAR | IW_PRIV_SIZE_MASK, "show" },
|
||||||
/* --- sub-ioctls relations --- */
|
/* --- sub-ioctls relations --- */
|
||||||
|
@ -289,10 +285,6 @@ static struct {
|
||||||
{"TGnWifiTest", Set_TGnWifiTest_Proc},
|
{"TGnWifiTest", Set_TGnWifiTest_Proc},
|
||||||
{"ForceGF", Set_ForceGF_Proc},
|
{"ForceGF", Set_ForceGF_Proc},
|
||||||
#endif // DOT11_N_SUPPORT //
|
#endif // DOT11_N_SUPPORT //
|
||||||
#ifdef QOS_DLS_SUPPORT
|
|
||||||
{"DlsAddEntry", Set_DlsAddEntry_Proc},
|
|
||||||
{"DlsTearDownEntry", Set_DlsTearDownEntry_Proc},
|
|
||||||
#endif // QOS_DLS_SUPPORT //
|
|
||||||
{"LongRetry", Set_LongRetryLimit_Proc},
|
{"LongRetry", Set_LongRetryLimit_Proc},
|
||||||
{"ShortRetry", Set_ShortRetryLimit_Proc},
|
{"ShortRetry", Set_ShortRetryLimit_Proc},
|
||||||
#ifdef EXT_BUILD_CHANNEL_LIST
|
#ifdef EXT_BUILD_CHANNEL_LIST
|
||||||
|
@ -2057,16 +2049,6 @@ rt_private_show(struct net_device *dev, struct iw_request_info *info,
|
||||||
wrq->length = strlen(extra) + 1; // 1: size of '\0'
|
wrq->length = strlen(extra) + 1; // 1: size of '\0'
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
||||||
#ifdef QOS_DLS_SUPPORT
|
|
||||||
case SHOW_DLS_ENTRY_INFO:
|
|
||||||
{
|
|
||||||
Set_DlsEntryInfo_Display_Proc(pAd, NULL);
|
|
||||||
wrq->length = 0; // 1: size of '\0'
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
#endif // QOS_DLS_SUPPORT //
|
|
||||||
|
|
||||||
case SHOW_CFG_VALUE:
|
case SHOW_CFG_VALUE:
|
||||||
{
|
{
|
||||||
Status = RTMPShowCfgValue(pAd, wrq->pointer, extra);
|
Status = RTMPShowCfgValue(pAd, wrq->pointer, extra);
|
||||||
|
@ -3813,62 +3795,7 @@ INT RTMPSetInformation(
|
||||||
DBGPRINT(RT_DEBUG_TRACE, ("Set::RT_OID_802_11_SET_APSD_PSM (bAPSDForcePowerSave:%d)\n", pAdapter->CommonCfg.bAPSDForcePowerSave));
|
DBGPRINT(RT_DEBUG_TRACE, ("Set::RT_OID_802_11_SET_APSD_PSM (bAPSDForcePowerSave:%d)\n", pAdapter->CommonCfg.bAPSDForcePowerSave));
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
#ifdef QOS_DLS_SUPPORT
|
|
||||||
case RT_OID_802_11_SET_DLS:
|
|
||||||
if (wrq->u.data.length != sizeof(ULONG))
|
|
||||||
Status = -EINVAL;
|
|
||||||
else
|
|
||||||
{
|
|
||||||
BOOLEAN oldvalue = pAdapter->CommonCfg.bDLSCapable;
|
|
||||||
Status = copy_from_user(&pAdapter->CommonCfg.bDLSCapable, wrq->u.data.pointer, wrq->u.data.length);
|
|
||||||
if (oldvalue && !pAdapter->CommonCfg.bDLSCapable)
|
|
||||||
{
|
|
||||||
int i;
|
|
||||||
// tear down local dls table entry
|
|
||||||
for (i=0; i<MAX_NUM_OF_INIT_DLS_ENTRY; i++)
|
|
||||||
{
|
|
||||||
if (pAdapter->StaCfg.DLSEntry[i].Valid && (pAdapter->StaCfg.DLSEntry[i].Status == DLS_FINISH))
|
|
||||||
{
|
|
||||||
pAdapter->StaCfg.DLSEntry[i].Status = DLS_NONE;
|
|
||||||
pAdapter->StaCfg.DLSEntry[i].Valid = FALSE;
|
|
||||||
RTMPSendDLSTearDownFrame(pAdapter, pAdapter->StaCfg.DLSEntry[i].MacAddr);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// tear down peer dls table entry
|
|
||||||
for (i=MAX_NUM_OF_INIT_DLS_ENTRY; i<MAX_NUM_OF_DLS_ENTRY; i++)
|
|
||||||
{
|
|
||||||
if (pAdapter->StaCfg.DLSEntry[i].Valid && (pAdapter->StaCfg.DLSEntry[i].Status == DLS_FINISH))
|
|
||||||
{
|
|
||||||
pAdapter->StaCfg.DLSEntry[i].Status = DLS_NONE;
|
|
||||||
pAdapter->StaCfg.DLSEntry[i].Valid = FALSE;
|
|
||||||
RTMPSendDLSTearDownFrame(pAdapter, pAdapter->StaCfg.DLSEntry[i].MacAddr);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
DBGPRINT(RT_DEBUG_TRACE,("Set::RT_OID_802_11_SET_DLS (=%d)\n", pAdapter->CommonCfg.bDLSCapable));
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case RT_OID_802_11_SET_DLS_PARAM:
|
|
||||||
if (wrq->u.data.length != sizeof(RT_802_11_DLS_UI))
|
|
||||||
Status = -EINVAL;
|
|
||||||
else
|
|
||||||
{
|
|
||||||
RT_802_11_DLS Dls;
|
|
||||||
|
|
||||||
NdisZeroMemory(&Dls, sizeof(RT_802_11_DLS));
|
|
||||||
RTMPMoveMemory(&Dls, wrq->u.data.pointer, sizeof(RT_802_11_DLS_UI));
|
|
||||||
MlmeEnqueue(pAdapter,
|
|
||||||
MLME_CNTL_STATE_MACHINE,
|
|
||||||
RT_OID_802_11_SET_DLS_PARAM,
|
|
||||||
sizeof(RT_802_11_DLS),
|
|
||||||
&Dls);
|
|
||||||
DBGPRINT(RT_DEBUG_TRACE,("Set::RT_OID_802_11_SET_DLS_PARAM \n"));
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
#endif // QOS_DLS_SUPPORT //
|
|
||||||
case RT_OID_802_11_SET_WMM:
|
case RT_OID_802_11_SET_WMM:
|
||||||
if (wrq->u.data.length != sizeof(BOOLEAN))
|
if (wrq->u.data.length != sizeof(BOOLEAN))
|
||||||
Status = -EINVAL;
|
Status = -EINVAL;
|
||||||
|
@ -5203,35 +5130,6 @@ INT RTMPQueryInformation(
|
||||||
DBGPRINT(RT_DEBUG_TRACE, ("Status=%d\n", Status));
|
DBGPRINT(RT_DEBUG_TRACE, ("Status=%d\n", Status));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
||||||
#ifdef QOS_DLS_SUPPORT
|
|
||||||
case RT_OID_802_11_QUERY_DLS:
|
|
||||||
wrq->u.data.length = sizeof(BOOLEAN);
|
|
||||||
Status = copy_to_user(wrq->u.data.pointer, &pAdapter->CommonCfg.bDLSCapable, wrq->u.data.length);
|
|
||||||
DBGPRINT(RT_DEBUG_TRACE, ("Query::RT_OID_802_11_QUERY_DLS(=%d)\n", pAdapter->CommonCfg.bDLSCapable));
|
|
||||||
break;
|
|
||||||
|
|
||||||
case RT_OID_802_11_QUERY_DLS_PARAM:
|
|
||||||
{
|
|
||||||
PRT_802_11_DLS_INFO pDlsInfo = kmalloc(sizeof(RT_802_11_DLS_INFO), GFP_ATOMIC);
|
|
||||||
if (pDlsInfo == NULL)
|
|
||||||
break;
|
|
||||||
|
|
||||||
for (i=0; i<MAX_NUM_OF_DLS_ENTRY; i++)
|
|
||||||
{
|
|
||||||
RTMPMoveMemory(&pDlsInfo->Entry[i], &pAdapter->StaCfg.DLSEntry[i], sizeof(RT_802_11_DLS_UI));
|
|
||||||
}
|
|
||||||
|
|
||||||
pDlsInfo->num = MAX_NUM_OF_DLS_ENTRY;
|
|
||||||
wrq->u.data.length = sizeof(RT_802_11_DLS_INFO);
|
|
||||||
Status = copy_to_user(wrq->u.data.pointer, pDlsInfo, wrq->u.data.length);
|
|
||||||
DBGPRINT(RT_DEBUG_TRACE, ("Query::RT_OID_802_11_QUERY_DLS_PARAM\n"));
|
|
||||||
|
|
||||||
if (pDlsInfo)
|
|
||||||
kfree(pDlsInfo);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
#endif // QOS_DLS_SUPPORT //
|
|
||||||
default:
|
default:
|
||||||
DBGPRINT(RT_DEBUG_TRACE, ("Query::unknown IOCTL's subcmd = 0x%08x\n", cmd));
|
DBGPRINT(RT_DEBUG_TRACE, ("Query::unknown IOCTL's subcmd = 0x%08x\n", cmd));
|
||||||
Status = -EOPNOTSUPP;
|
Status = -EOPNOTSUPP;
|
||||||
|
|
Loading…
Reference in New Issue