|
@@ -322,7 +322,9 @@ s_vSaveTxPktInfo(PSDevice pDevice, BYTE byPktNum, PBYTE pbyDestAddr, WORD wPktLe
|
|
|
|
|
|
pStatistic->abyTxPktInfo[byPktNum].wLength = wPktLength;
|
|
|
pStatistic->abyTxPktInfo[byPktNum].wFIFOCtl = wFIFOCtl;
|
|
|
- memcpy(pStatistic->abyTxPktInfo[byPktNum].abyDestAddr, pbyDestAddr, U_ETHER_ADDR_LEN);
|
|
|
+ memcpy(pStatistic->abyTxPktInfo[byPktNum].abyDestAddr,
|
|
|
+ pbyDestAddr,
|
|
|
+ ETH_ALEN);
|
|
|
}
|
|
|
|
|
|
|
|
@@ -1026,18 +1028,27 @@ s_vFillRTSHead (
|
|
|
pBuf->Data.wDurationID = pBuf->wDuration_aa;
|
|
|
//Get RTS Frame body
|
|
|
pBuf->Data.wFrameControl = TYPE_CTL_RTS;//0x00B4
|
|
|
- if ((pDevice->eOPMode == OP_MODE_ADHOC) ||
|
|
|
- (pDevice->eOPMode == OP_MODE_AP)) {
|
|
|
- memcpy(&(pBuf->Data.abyRA[0]), &(psEthHeader->abyDstAddr[0]), U_ETHER_ADDR_LEN);
|
|
|
- }
|
|
|
+
|
|
|
+ if ((pDevice->eOPMode == OP_MODE_ADHOC) ||
|
|
|
+ (pDevice->eOPMode == OP_MODE_AP)) {
|
|
|
+ memcpy(&(pBuf->Data.abyRA[0]),
|
|
|
+ &(psEthHeader->abyDstAddr[0]),
|
|
|
+ ETH_ALEN);
|
|
|
+ }
|
|
|
else {
|
|
|
- memcpy(&(pBuf->Data.abyRA[0]), &(pDevice->abyBSSID[0]), U_ETHER_ADDR_LEN);
|
|
|
- }
|
|
|
- if (pDevice->eOPMode == OP_MODE_AP) {
|
|
|
- memcpy(&(pBuf->Data.abyTA[0]), &(pDevice->abyBSSID[0]), U_ETHER_ADDR_LEN);
|
|
|
- }
|
|
|
+ memcpy(&(pBuf->Data.abyRA[0]),
|
|
|
+ &(pDevice->abyBSSID[0]),
|
|
|
+ ETH_ALEN);
|
|
|
+ }
|
|
|
+ if (pDevice->eOPMode == OP_MODE_AP) {
|
|
|
+ memcpy(&(pBuf->Data.abyTA[0]),
|
|
|
+ &(pDevice->abyBSSID[0]),
|
|
|
+ ETH_ALEN);
|
|
|
+ }
|
|
|
else {
|
|
|
- memcpy(&(pBuf->Data.abyTA[0]), &(psEthHeader->abySrcAddr[0]), U_ETHER_ADDR_LEN);
|
|
|
+ memcpy(&(pBuf->Data.abyTA[0]),
|
|
|
+ &(psEthHeader->abySrcAddr[0]),
|
|
|
+ ETH_ALEN);
|
|
|
}
|
|
|
}
|
|
|
else {
|
|
@@ -1063,19 +1074,27 @@ s_vFillRTSHead (
|
|
|
//Get RTS Frame body
|
|
|
pBuf->Data.wFrameControl = TYPE_CTL_RTS;//0x00B4
|
|
|
|
|
|
- if ((pDevice->eOPMode == OP_MODE_ADHOC) ||
|
|
|
- (pDevice->eOPMode == OP_MODE_AP)) {
|
|
|
- memcpy(&(pBuf->Data.abyRA[0]), &(psEthHeader->abyDstAddr[0]), U_ETHER_ADDR_LEN);
|
|
|
- }
|
|
|
+ if ((pDevice->eOPMode == OP_MODE_ADHOC) ||
|
|
|
+ (pDevice->eOPMode == OP_MODE_AP)) {
|
|
|
+ memcpy(&(pBuf->Data.abyRA[0]),
|
|
|
+ &(psEthHeader->abyDstAddr[0]),
|
|
|
+ ETH_ALEN);
|
|
|
+ }
|
|
|
else {
|
|
|
- memcpy(&(pBuf->Data.abyRA[0]), &(pDevice->abyBSSID[0]), U_ETHER_ADDR_LEN);
|
|
|
+ memcpy(&(pBuf->Data.abyRA[0]),
|
|
|
+ &(pDevice->abyBSSID[0]),
|
|
|
+ ETH_ALEN);
|
|
|
}
|
|
|
|
|
|
- if (pDevice->eOPMode == OP_MODE_AP) {
|
|
|
- memcpy(&(pBuf->Data.abyTA[0]), &(pDevice->abyBSSID[0]), U_ETHER_ADDR_LEN);
|
|
|
- }
|
|
|
+ if (pDevice->eOPMode == OP_MODE_AP) {
|
|
|
+ memcpy(&(pBuf->Data.abyTA[0]),
|
|
|
+ &(pDevice->abyBSSID[0]),
|
|
|
+ ETH_ALEN);
|
|
|
+ }
|
|
|
else {
|
|
|
- memcpy(&(pBuf->Data.abyTA[0]), &(psEthHeader->abySrcAddr[0]), U_ETHER_ADDR_LEN);
|
|
|
+ memcpy(&(pBuf->Data.abyTA[0]),
|
|
|
+ &(psEthHeader->abySrcAddr[0]),
|
|
|
+ ETH_ALEN);
|
|
|
}
|
|
|
|
|
|
} // if (byFBOption == AUTO_FB_NONE)
|
|
@@ -1094,20 +1113,26 @@ s_vFillRTSHead (
|
|
|
//Get RTS Frame body
|
|
|
pBuf->Data.wFrameControl = TYPE_CTL_RTS;//0x00B4
|
|
|
|
|
|
- if ((pDevice->eOPMode == OP_MODE_ADHOC) ||
|
|
|
- (pDevice->eOPMode == OP_MODE_AP)) {
|
|
|
- memcpy(&(pBuf->Data.abyRA[0]), &(psEthHeader->abyDstAddr[0]), U_ETHER_ADDR_LEN);
|
|
|
- }
|
|
|
- else {
|
|
|
- memcpy(&(pBuf->Data.abyRA[0]), &(pDevice->abyBSSID[0]), U_ETHER_ADDR_LEN);
|
|
|
- }
|
|
|
-
|
|
|
- if (pDevice->eOPMode == OP_MODE_AP) {
|
|
|
- memcpy(&(pBuf->Data.abyTA[0]), &(pDevice->abyBSSID[0]), U_ETHER_ADDR_LEN);
|
|
|
- }
|
|
|
- else {
|
|
|
- memcpy(&(pBuf->Data.abyTA[0]), &(psEthHeader->abySrcAddr[0]), U_ETHER_ADDR_LEN);
|
|
|
- }
|
|
|
+ if ((pDevice->eOPMode == OP_MODE_ADHOC) ||
|
|
|
+ (pDevice->eOPMode == OP_MODE_AP)) {
|
|
|
+ memcpy(&(pBuf->Data.abyRA[0]),
|
|
|
+ &(psEthHeader->abyDstAddr[0]),
|
|
|
+ ETH_ALEN);
|
|
|
+ } else {
|
|
|
+ memcpy(&(pBuf->Data.abyRA[0]),
|
|
|
+ &(pDevice->abyBSSID[0]),
|
|
|
+ ETH_ALEN);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (pDevice->eOPMode == OP_MODE_AP) {
|
|
|
+ memcpy(&(pBuf->Data.abyTA[0]),
|
|
|
+ &(pDevice->abyBSSID[0]),
|
|
|
+ ETH_ALEN);
|
|
|
+ } else {
|
|
|
+ memcpy(&(pBuf->Data.abyTA[0]),
|
|
|
+ &(psEthHeader->abySrcAddr[0]),
|
|
|
+ ETH_ALEN);
|
|
|
+ }
|
|
|
|
|
|
}
|
|
|
else {
|
|
@@ -1125,19 +1150,25 @@ s_vFillRTSHead (
|
|
|
//Get RTS Frame body
|
|
|
pBuf->Data.wFrameControl = TYPE_CTL_RTS;//0x00B4
|
|
|
|
|
|
- if ((pDevice->eOPMode == OP_MODE_ADHOC) ||
|
|
|
- (pDevice->eOPMode == OP_MODE_AP)) {
|
|
|
- memcpy(&(pBuf->Data.abyRA[0]), &(psEthHeader->abyDstAddr[0]), U_ETHER_ADDR_LEN);
|
|
|
- }
|
|
|
- else {
|
|
|
- memcpy(&(pBuf->Data.abyRA[0]), &(pDevice->abyBSSID[0]), U_ETHER_ADDR_LEN);
|
|
|
- }
|
|
|
- if (pDevice->eOPMode == OP_MODE_AP) {
|
|
|
- memcpy(&(pBuf->Data.abyTA[0]), &(pDevice->abyBSSID[0]), U_ETHER_ADDR_LEN);
|
|
|
- }
|
|
|
- else {
|
|
|
- memcpy(&(pBuf->Data.abyTA[0]), &(psEthHeader->abySrcAddr[0]), U_ETHER_ADDR_LEN);
|
|
|
- }
|
|
|
+ if ((pDevice->eOPMode == OP_MODE_ADHOC) ||
|
|
|
+ (pDevice->eOPMode == OP_MODE_AP)) {
|
|
|
+ memcpy(&(pBuf->Data.abyRA[0]),
|
|
|
+ &(psEthHeader->abyDstAddr[0]),
|
|
|
+ ETH_ALEN);
|
|
|
+ } else {
|
|
|
+ memcpy(&(pBuf->Data.abyRA[0]),
|
|
|
+ &(pDevice->abyBSSID[0]),
|
|
|
+ ETH_ALEN);
|
|
|
+ }
|
|
|
+ if (pDevice->eOPMode == OP_MODE_AP) {
|
|
|
+ memcpy(&(pBuf->Data.abyTA[0]),
|
|
|
+ &(pDevice->abyBSSID[0]),
|
|
|
+ ETH_ALEN);
|
|
|
+ } else {
|
|
|
+ memcpy(&(pBuf->Data.abyTA[0]),
|
|
|
+ &(psEthHeader->abySrcAddr[0]),
|
|
|
+ ETH_ALEN);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
else if (byPktType == PK_TYPE_11B) {
|
|
@@ -1153,20 +1184,26 @@ s_vFillRTSHead (
|
|
|
//Get RTS Frame body
|
|
|
pBuf->Data.wFrameControl = TYPE_CTL_RTS;//0x00B4
|
|
|
|
|
|
-
|
|
|
- if ((pDevice->eOPMode == OP_MODE_ADHOC) ||
|
|
|
+ if ((pDevice->eOPMode == OP_MODE_ADHOC) ||
|
|
|
(pDevice->eOPMode == OP_MODE_AP)) {
|
|
|
- memcpy(&(pBuf->Data.abyRA[0]), &(psEthHeader->abyDstAddr[0]), U_ETHER_ADDR_LEN);
|
|
|
+ memcpy(&(pBuf->Data.abyRA[0]),
|
|
|
+ &(psEthHeader->abyDstAddr[0]),
|
|
|
+ ETH_ALEN);
|
|
|
}
|
|
|
else {
|
|
|
- memcpy(&(pBuf->Data.abyRA[0]), &(pDevice->abyBSSID[0]), U_ETHER_ADDR_LEN);
|
|
|
+ memcpy(&(pBuf->Data.abyRA[0]),
|
|
|
+ &(pDevice->abyBSSID[0]),
|
|
|
+ ETH_ALEN);
|
|
|
}
|
|
|
|
|
|
if (pDevice->eOPMode == OP_MODE_AP) {
|
|
|
- memcpy(&(pBuf->Data.abyTA[0]), &(pDevice->abyBSSID[0]), U_ETHER_ADDR_LEN);
|
|
|
- }
|
|
|
- else {
|
|
|
- memcpy(&(pBuf->Data.abyTA[0]), &(psEthHeader->abySrcAddr[0]), U_ETHER_ADDR_LEN);
|
|
|
+ memcpy(&(pBuf->Data.abyTA[0]),
|
|
|
+ &(pDevice->abyBSSID[0]),
|
|
|
+ ETH_ALEN);
|
|
|
+ } else {
|
|
|
+ memcpy(&(pBuf->Data.abyTA[0]),
|
|
|
+ &(psEthHeader->abySrcAddr[0]),
|
|
|
+ ETH_ALEN);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -1222,7 +1259,9 @@ s_vFillCTSHead (
|
|
|
pBuf->Data.wDurationID = pBuf->wDuration_ba;
|
|
|
pBuf->Data.wFrameControl = TYPE_CTL_CTS;//0x00C4
|
|
|
pBuf->Data.wReserved = 0x0000;
|
|
|
- memcpy(&(pBuf->Data.abyRA[0]), &(pDevice->abyCurrentNetAddr[0]), U_ETHER_ADDR_LEN);
|
|
|
+ memcpy(&(pBuf->Data.abyRA[0]),
|
|
|
+ &(pDevice->abyCurrentNetAddr[0]),
|
|
|
+ ETH_ALEN);
|
|
|
} else { //if (byFBOption != AUTO_FB_NONE && uDMAIdx != TYPE_ATIMDMA && uDMAIdx != TYPE_BEACONDMA)
|
|
|
PSCTS pBuf = (PSCTS)pvCTS;
|
|
|
//Get SignalField,ServiceField,Length
|
|
@@ -1239,16 +1278,13 @@ s_vFillCTSHead (
|
|
|
pBuf->Data.wDurationID = pBuf->wDuration_ba;
|
|
|
pBuf->Data.wFrameControl = TYPE_CTL_CTS;//0x00C4
|
|
|
pBuf->Data.wReserved = 0x0000;
|
|
|
- memcpy(&(pBuf->Data.abyRA[0]), &(pDevice->abyCurrentNetAddr[0]), U_ETHER_ADDR_LEN);
|
|
|
+ memcpy(&(pBuf->Data.abyRA[0]),
|
|
|
+ &(pDevice->abyCurrentNetAddr[0]),
|
|
|
+ ETH_ALEN);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
/*+
|
|
|
*
|
|
|
* Description:
|
|
@@ -1843,21 +1879,35 @@ s_vGenerateMACHeader (
|
|
|
}
|
|
|
|
|
|
if (pDevice->eOPMode == OP_MODE_AP) {
|
|
|
- memcpy(&(pMACHeader->abyAddr1[0]), &(psEthHeader->abyDstAddr[0]), U_ETHER_ADDR_LEN);
|
|
|
- memcpy(&(pMACHeader->abyAddr2[0]), &(pDevice->abyBSSID[0]), U_ETHER_ADDR_LEN);
|
|
|
- memcpy(&(pMACHeader->abyAddr3[0]), &(psEthHeader->abySrcAddr[0]), U_ETHER_ADDR_LEN);
|
|
|
+ memcpy(&(pMACHeader->abyAddr1[0]),
|
|
|
+ &(psEthHeader->abyDstAddr[0]),
|
|
|
+ ETH_ALEN);
|
|
|
+ memcpy(&(pMACHeader->abyAddr2[0]), &(pDevice->abyBSSID[0]), ETH_ALEN);
|
|
|
+ memcpy(&(pMACHeader->abyAddr3[0]),
|
|
|
+ &(psEthHeader->abySrcAddr[0]),
|
|
|
+ ETH_ALEN);
|
|
|
pMACHeader->wFrameCtl |= FC_FROMDS;
|
|
|
- }
|
|
|
- else {
|
|
|
- if (pDevice->eOPMode == OP_MODE_ADHOC) {
|
|
|
- memcpy(&(pMACHeader->abyAddr1[0]), &(psEthHeader->abyDstAddr[0]), U_ETHER_ADDR_LEN);
|
|
|
- memcpy(&(pMACHeader->abyAddr2[0]), &(psEthHeader->abySrcAddr[0]), U_ETHER_ADDR_LEN);
|
|
|
- memcpy(&(pMACHeader->abyAddr3[0]), &(pDevice->abyBSSID[0]), U_ETHER_ADDR_LEN);
|
|
|
- }
|
|
|
- else {
|
|
|
- memcpy(&(pMACHeader->abyAddr3[0]), &(psEthHeader->abyDstAddr[0]), U_ETHER_ADDR_LEN);
|
|
|
- memcpy(&(pMACHeader->abyAddr2[0]), &(psEthHeader->abySrcAddr[0]), U_ETHER_ADDR_LEN);
|
|
|
- memcpy(&(pMACHeader->abyAddr1[0]), &(pDevice->abyBSSID[0]), U_ETHER_ADDR_LEN);
|
|
|
+ } else {
|
|
|
+ if (pDevice->eOPMode == OP_MODE_ADHOC) {
|
|
|
+ memcpy(&(pMACHeader->abyAddr1[0]),
|
|
|
+ &(psEthHeader->abyDstAddr[0]),
|
|
|
+ ETH_ALEN);
|
|
|
+ memcpy(&(pMACHeader->abyAddr2[0]),
|
|
|
+ &(psEthHeader->abySrcAddr[0]),
|
|
|
+ ETH_ALEN);
|
|
|
+ memcpy(&(pMACHeader->abyAddr3[0]),
|
|
|
+ &(pDevice->abyBSSID[0]),
|
|
|
+ ETH_ALEN);
|
|
|
+ } else {
|
|
|
+ memcpy(&(pMACHeader->abyAddr3[0]),
|
|
|
+ &(psEthHeader->abyDstAddr[0]),
|
|
|
+ ETH_ALEN);
|
|
|
+ memcpy(&(pMACHeader->abyAddr2[0]),
|
|
|
+ &(psEthHeader->abySrcAddr[0]),
|
|
|
+ ETH_ALEN);
|
|
|
+ memcpy(&(pMACHeader->abyAddr1[0]),
|
|
|
+ &(pDevice->abyBSSID[0]),
|
|
|
+ ETH_ALEN);
|
|
|
pMACHeader->wFrameCtl |= FC_TODS;
|
|
|
}
|
|
|
}
|
|
@@ -2089,8 +2139,12 @@ CMD_STATUS csMgmt_xmit(
|
|
|
|
|
|
memset((PVOID)(pbyTxBufferAddr + wTxBufSize), 0, (cbHeaderSize - wTxBufSize));
|
|
|
|
|
|
- memcpy(&(sEthHeader.abyDstAddr[0]), &(pPacket->p80211Header->sA3.abyAddr1[0]), U_ETHER_ADDR_LEN);
|
|
|
- memcpy(&(sEthHeader.abySrcAddr[0]), &(pPacket->p80211Header->sA3.abyAddr2[0]), U_ETHER_ADDR_LEN);
|
|
|
+ memcpy(&(sEthHeader.abyDstAddr[0]),
|
|
|
+ &(pPacket->p80211Header->sA3.abyAddr1[0]),
|
|
|
+ ETH_ALEN);
|
|
|
+ memcpy(&(sEthHeader.abySrcAddr[0]),
|
|
|
+ &(pPacket->p80211Header->sA3.abyAddr2[0]),
|
|
|
+ ETH_ALEN);
|
|
|
//=========================
|
|
|
// No Fragmentation
|
|
|
//=========================
|
|
@@ -2521,8 +2575,12 @@ vDMA0_tx_80211(PSDevice pDevice, struct sk_buff *skb) {
|
|
|
cbHeaderSize = wTxBufSize + sizeof(SRrvTime_ab) + cbMICHDR + sizeof(STxDataHead_ab);
|
|
|
}
|
|
|
memset((PVOID)(pbyTxBufferAddr + wTxBufSize), 0, (cbHeaderSize - wTxBufSize));
|
|
|
- memcpy(&(sEthHeader.abyDstAddr[0]), &(p80211Header->sA3.abyAddr1[0]), U_ETHER_ADDR_LEN);
|
|
|
- memcpy(&(sEthHeader.abySrcAddr[0]), &(p80211Header->sA3.abyAddr2[0]), U_ETHER_ADDR_LEN);
|
|
|
+ memcpy(&(sEthHeader.abyDstAddr[0]),
|
|
|
+ &(p80211Header->sA3.abyAddr1[0]),
|
|
|
+ ETH_ALEN);
|
|
|
+ memcpy(&(sEthHeader.abySrcAddr[0]),
|
|
|
+ &(p80211Header->sA3.abyAddr2[0]),
|
|
|
+ ETH_ALEN);
|
|
|
//=========================
|
|
|
// No Fragmentation
|
|
|
//=========================
|